
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

size_t ExportQuantumPixels(Image *image,CacheView *image_view,QuantumInfo *quantum_info,
                          QuantumType quantum_type,uchar *pixels,ExceptionInfo *exception)

{
  float fVar1;
  Quantum QVar2;
  longlong lVar3;
  double dVar4;
  double dVar5;
  double dVar6;
  int iVar7;
  PixelChannelMap *pPVar8;
  PixelTrait PVar9;
  size_t sVar10;
  size_t sVar11;
  EndianType EVar12;
  float fVar13;
  double dVar14;
  ushort uVar15;
  uint uVar16;
  double *pdVar17;
  Quantum *pQVar18;
  uint uVar19;
  uint uVar20;
  uint uVar21;
  int iVar22;
  byte bVar23;
  double *pdVar24;
  byte bVar25;
  byte bVar26;
  PixelChannelMap *pPVar27;
  int iVar28;
  byte bVar29;
  uint uVar30;
  size_t sVar31;
  uint uVar32;
  int iVar33;
  int in_GS_OFFSET;
  char *pcVar34;
  ulonglong local_10c;
  ulonglong local_104;
  undefined8 local_fc;
  undefined8 local_f4;
  byte local_ec;
  undefined8 local_e4;
  int local_dc;
  int iStack_d8;
  int local_d4;
  int local_cc;
  int iStack_c8;
  Quantum *local_c4;
  size_t local_c0;
  int local_bc;
  int iStack_b8;
  undefined8 local_b4;
  int local_a8;
  size_t local_74;
  uint local_64;
  int iStack_60;
  Quantum cbcr [4];
  
  iVar7 = *(int *)(in_GS_OFFSET + 0x14);
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,
                  "ExportQuantumPixels");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,
                  "ExportQuantumPixels");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",
                   image->filename);
  }
  if (quantum_info == (QuantumInfo *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,
                  "ExportQuantumPixels");
  }
  if (quantum_info->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                  0xf35,"ExportQuantumPixels");
  }
  if (pixels == (uchar *)0x0) {
    pixels = GetQuantumPixels(quantum_info);
  }
  uVar16 = quantum_type - CbYCrAQuantum;
  if (image_view == (CacheView *)0x0) {
    local_fc = GetImageExtent(image);
    local_c4 = GetVirtualPixelQueue(image);
    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {
      pdVar17 = GetAuthenticPixelQueue(image);
      goto LAB_001548e3;
    }
LAB_001547f3:
    if (1 < uVar16) goto LAB_001547fe;
LAB_00154999:
    pQVar18 = GetAuthenticPixelQueue(image);
    if (0 < (int)(uint)local_fc) {
      iVar33 = image->channel_map->offset;
      iVar22 = image->channel_map[1].offset;
      sVar11 = image->number_channels;
      iVar28 = 0;
      pQVar18 = pQVar18 + iVar33;
      do {
        QVar2 = *pQVar18;
        iVar28 = iVar28 + 1;
        *pQVar18 = pQVar18[iVar22 - iVar33];
        pQVar18[iVar22 - iVar33] = QVar2;
        pQVar18 = pQVar18 + sVar11;
      } while (iVar28 != (uint)local_fc);
    }
    ResetQuantumState(quantum_info);
    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);
    switch(quantum_type) {
    case AlphaQuantum:
      goto _L4758;
    case BGRAQuantum:
      goto _L4806;
    case BGROQuantum:
      goto _L4807;
    case BGRQuantum:
      goto _L4805;
    case BlackQuantum:
      goto _L4808;
    case BlueQuantum:
    case YellowQuantum:
      goto _L4852;
    case CbYCrAQuantum:
    case RGBAQuantum:
      goto _L5114;
    case CbYCrQuantum:
    case RGBQuantum:
      goto _L5113;
    case CbYCrYQuantum:
      goto _L4898;
    case CMYKAQuantum:
      goto _L4896;
    case CMYKOQuantum:
      goto _L4897;
    case CMYKQuantum:
      goto _L4895;
    case CyanQuantum:
    case RedQuantum:
      goto _L5026;
    case GrayAlphaQuantum:
      goto _L4981;
    case GrayQuantum:
      goto _L4980;
    case GreenQuantum:
    case MagentaQuantum:
      goto _L4982;
    case IndexAlphaQuantum:
      goto _L5025;
    case IndexQuantum:
      goto _L5024;
    case OpacityQuantum:
      goto _L5068;
    case RGBOQuantum:
      goto _L5115;
    }
  }
  else {
    local_fc = GetCacheViewExtent(image_view);
    local_c4 = GetCacheViewVirtualPixelQueue(image_view);
    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;
    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);
LAB_001548e3:
    dVar4 = _DAT_0029f148;
    sVar11 = image->columns;
    if ((int)sVar11 < 1) goto LAB_001547f3;
    pPVar8 = image->channel_map;
    PVar9 = pPVar8[4].traits;
    sVar10 = image->number_channels;
    sVar31 = 0;
    do {
      if (PVar9 == UndefinedPixelTrait) {
        dVar5 = 1.0;
      }
      else {
        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;
      }
      pdVar24 = pdVar17;
      pPVar27 = pPVar8;
      if (0 < (int)sVar10) {
        do {
          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {
            *pdVar24 = *pdVar24 * dVar5;
          }
          pPVar27 = pPVar27 + 1;
          pdVar24 = pdVar24 + 1;
        } while (pPVar27 != pPVar8 + sVar10);
      }
      pdVar17 = pdVar17 + sVar10;
      sVar31 = sVar31 + 1;
    } while (sVar31 != sVar11);
    if (uVar16 < 2) goto LAB_00154999;
LAB_001547fe:
    ResetQuantumState(quantum_info);
    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);
    switch(quantum_type) {
    default:
      goto _L4734;
    case AlphaQuantum:
_L4758:
      dVar5 = DAT_002a8000;
      fVar1 = DAT_0029f710;
      dVar4 = _DAT_0029f148;
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportAlphaQuantum";
        uVar16 = 0xfb;
LAB_00159158:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,
                      pcVar34);
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportAlphaQuantum";
        uVar16 = 0xfc;
LAB_00159135:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                      uVar16,pcVar34);
      }
      uVar16 = quantum_info->depth;
      iVar33 = (uint)local_fc;
      if (uVar16 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              if (image->channel_map[4].traits == UndefinedPixelTrait) {
                fVar1 = 1.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar4 *
                               (longdouble)local_c4[image->channel_map[4].offset]);
              }
              uVar15 = SinglePrecisionToHalf(fVar1);
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (image->channel_map[4].traits == UndefinedPixelTrait) {
LAB_00157b5e:
                iVar22 = -1;
                bVar29 = 0xff;
              }
              else {
                dVar4 = local_c4[image->channel_map[4].offset];
                if (dVar4 <= 0.0) {
                  iVar22 = 0;
                  bVar29 = 0;
                }
                else {
                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;
                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);
                  bVar29 = (byte)((uint)iVar22 >> 8);
                }
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        goto _L4734;
      }
      if (uVar16 < 0x11) {
        if (uVar16 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0xff;
              if (image->channel_map[4].traits != UndefinedPixelTrait) {
                bVar29 = 0;
                if (0.0 < local_c4[image->channel_map[4].offset]) {
                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;
                  if ((double)DAT_002a7ff4 <= dVar4) {
                    bVar29 = 0xff;
                  }
                  else {
                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);
                  }
                }
              }
              *pixels = bVar29;
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
          goto _L4734;
        }
LAB_00157d50:
        local_dc = 0;
        iStack_d8 = 0;
        if (uVar16 != 0) goto LAB_00154c68;
      }
      else {
        if (uVar16 == 0x20) {
          if (quantum_info->format == FloatingPointQuantumFormat) {
            if (0 < (int)(uint)local_fc) {
              iVar33 = 0;
              dVar4 = (quantum_info->state).inverse_scale;
              dVar5 = quantum_info->minimum;
              EVar12 = quantum_info->endian;
              do {
                fVar13 = fVar1;
                if (image->channel_map[4].traits != UndefinedPixelTrait) {
                  fVar13 = (float)local_c4[image->channel_map[4].offset];
                }
                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;
                bVar29 = (byte)((uint)fVar13 >> 8);
                bVar25 = (byte)((uint)fVar13 >> 0x18);
                bVar23 = (byte)((uint)fVar13 >> 0x10);
                if (EVar12 == LSBEndian) {
                  *pixels = SUB41(fVar13,0);
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = SUB41(fVar13,0);
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          else {
            iVar33 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if (image->channel_map[4].traits == UndefinedPixelTrait) {
LAB_00157c2d:
                  local_64._0_1_ = 0xff;
                  bVar29 = 0xff;
                  bVar23 = 0xff;
                  bVar25 = 0xff;
                }
                else if (local_c4[image->channel_map[4].offset] <= 0.0) {
                  local_64._0_1_ = 0;
                  bVar29 = 0;
                  bVar23 = 0;
                  bVar25 = 0;
                }
                else {
                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;
                  if (dVar5 <= dVar4) goto LAB_00157c2d;
                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                  local_64._0_1_ = (byte)lVar3;
                  bVar29 = (byte)((ulonglong)lVar3 >> 8);
                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                }
                if (quantum_info->endian == LSBEndian) {
                  *pixels = (byte)local_64;
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = (byte)local_64;
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          goto _L4734;
        }
        if (uVar16 != 0x40) goto LAB_00157d50;
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            dVar4 = (quantum_info->state).inverse_scale;
            iVar22 = 0;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            dVar6 = (double)DAT_0029f710;
            do {
              dVar14 = dVar6;
              if (image->channel_map[4].traits != UndefinedPixelTrait) {
                dVar14 = local_c4[image->channel_map[4].offset];
              }
              dVar14 = dVar14 * dVar4 + dVar5;
              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);
              bVar23 = (byte)((ulonglong)dVar14 >> 8);
              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);
              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);
              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB81(dVar14,0);
                pixels[4] = bVar26;
                pixels[5] = bVar29;
                pixels[7] = bVar25;
                pixels[1] = bVar23;
                pixels[2] = (byte)local_f4;
                pixels[3] = (byte)local_fc;
                pixels[6] = (byte)local_104;
              }
              else {
                pixels[2] = bVar29;
                *pixels = bVar25;
                pixels[3] = bVar26;
                pixels[7] = SUB81(dVar14,0);
                pixels[4] = (byte)local_fc;
                pixels[1] = (byte)local_104;
                pixels[5] = (byte)local_f4;
                pixels[6] = bVar23;
              }
              iVar22 = iVar22 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 8;
            } while (iVar22 != iVar33);
          }
          goto _L4734;
        }
LAB_00154c68:
        uVar32 = 0;
        if (uVar16 < 0x41) {
          uVar32 = uVar16;
        }
        bVar23 = (byte)(uVar32 - 1);
        bVar29 = bVar23 & 0x1f;
        uVar20 = 2 << (bVar23 & 0x1f);
        uVar21 = uVar20;
        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;
        if ((uVar32 - 1 & 0x20) != 0) {
          uVar21 = 0;
          uVar30 = uVar20;
        }
        local_dc = uVar21 - 1;
        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        local_e4._0_4_ = 0;
        do {
          if (image->channel_map[4].traits == UndefinedPixelTrait) {
            dVar4 = (double)DAT_0029f710;
LAB_001566ad:
            fVar1 = (float)CONCAT44(iStack_d8,local_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_f4 = -1;
            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;
            if (dVar4 < (double)DAT_0029f714) {
              dVar4 = dVar4 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar4) {
                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
              }
              else {
                local_f4 = (longlong)ROUND(dVar4);
              }
            }
          }
          else {
            local_f4 = 0;
            dVar4 = local_c4[image->channel_map[4].offset];
            if (0.0 < dVar4) goto LAB_001566ad;
          }
          uVar32 = uVar16;
          if ((quantum_info->state).bits == 0) {
            (quantum_info->state).bits = 8;
          }
          while (0 < (int)uVar32) {
            uVar30 = (quantum_info->state).bits;
            uVar21 = uVar30;
            if (uVar16 <= uVar30) {
              uVar21 = uVar16;
            }
            uVar32 = uVar16 - uVar21;
            uVar16 = 0;
            if (-1 < (int)uVar32) {
              uVar16 = uVar32;
            }
            if (uVar30 == 8) {
              *pixels = 0;
            }
            uVar30 = uVar30 - uVar21;
            bVar29 = (byte)uVar16 & 0x1f;
            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;
            if ((uVar16 & 0x20) != 0) {
              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);
            }
            (quantum_info->state).bits = uVar30;
            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));
            if ((uVar30 & 0x20) != 0) {
              bVar29 = 0;
            }
            *pixels = *pixels | bVar29;
            if (uVar30 == 0) {
              pixels = pixels + 1;
              (quantum_info->state).bits = 8;
            }
          }
          local_e4._0_4_ = (uint)local_e4 + 1;
          pixels = pixels + quantum_info->pad;
          local_c4 = local_c4 + image->number_channels;
          if ((uint)local_e4 == (uint)local_fc) break;
          uVar16 = quantum_info->depth;
        } while( true );
      }
      goto _L4734;
    case BGRAQuantum:
_L4806:
      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case BGROQuantum:
_L4807:
      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case BGRQuantum:
_L4805:
      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case BlackQuantum:
_L4808:
      dVar5 = DAT_002a8000;
      dVar4 = _DAT_0029f148;
      if (image->colorspace != CMYKColorspace) {
        ThrowMagickException
                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,
                   "ColorSeparatedImageRequired","`%s\'",image->filename);
        goto _L4734;
      }
      uVar16 = quantum_info->depth;
      iVar33 = (uint)local_fc;
      if (uVar16 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              if (image->channel_map[3].traits == UndefinedPixelTrait) {
                fVar1 = 0.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar4 *
                               (longdouble)local_c4[image->channel_map[3].offset]);
              }
              uVar15 = SinglePrecisionToHalf(fVar1);
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||
                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {
                iVar22 = 0;
                bVar29 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar4) {
                iVar22 = -1;
                bVar29 = 0xff;
              }
              else {
                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);
                bVar29 = (byte)((uint)iVar22 >> 8);
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        goto _L4734;
      }
      if (uVar16 < 0x11) {
        if (uVar16 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0;
              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&
                 (0.0 < local_c4[image->channel_map[3].offset])) {
                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;
                bVar29 = 0xff;
                if (dVar4 < (double)DAT_002a7ff4) {
                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);
                }
              }
              iVar33 = iVar33 + 1;
              *pixels = bVar29;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
          goto _L4734;
        }
LAB_00158120:
        local_dc = 0;
        iStack_d8 = 0;
        if (uVar16 != 0) goto LAB_001563c0;
      }
      else {
        if (uVar16 == 0x20) {
          if (quantum_info->format == FloatingPointQuantumFormat) {
            if (0 < (int)(uint)local_fc) {
              iVar33 = 0;
              dVar4 = (quantum_info->state).inverse_scale;
              dVar5 = quantum_info->minimum;
              EVar12 = quantum_info->endian;
              do {
                if (image->channel_map[3].traits == UndefinedPixelTrait) {
                  fVar1 = 0.0;
                }
                else {
                  fVar1 = (float)local_c4[image->channel_map[3].offset];
                }
                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;
                bVar29 = (byte)((uint)fVar1 >> 8);
                bVar25 = (byte)((uint)fVar1 >> 0x18);
                bVar23 = (byte)((uint)fVar1 >> 0x10);
                if (EVar12 == LSBEndian) {
                  *pixels = SUB41(fVar1,0);
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = SUB41(fVar1,0);
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          else {
            iVar33 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||
                   (local_c4[image->channel_map[3].offset] <= 0.0)) {
                  local_64._0_1_ = 0;
                  bVar29 = 0;
                  bVar23 = 0;
                  bVar25 = 0;
                }
                else {
                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;
                  if (dVar5 <= dVar4) {
                    local_64._0_1_ = 0xff;
                    bVar29 = 0xff;
                    bVar23 = 0xff;
                    bVar25 = 0xff;
                  }
                  else {
                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                    local_64._0_1_ = (byte)lVar3;
                    bVar29 = (byte)((ulonglong)lVar3 >> 8);
                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                  }
                }
                if (quantum_info->endian == LSBEndian) {
                  *pixels = (byte)local_64;
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = (byte)local_64;
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          goto _L4734;
        }
        if (uVar16 != 0x40) goto LAB_00158120;
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            dVar4 = (quantum_info->state).inverse_scale;
            iVar22 = 0;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            do {
              if (image->channel_map[3].traits == UndefinedPixelTrait) {
                dVar6 = 0.0;
              }
              else {
                dVar6 = local_c4[image->channel_map[3].offset];
              }
              dVar6 = dVar6 * dVar4 + dVar5;
              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar23 = (byte)((ulonglong)dVar6 >> 8);
              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB81(dVar6,0);
                pixels[4] = bVar26;
                pixels[5] = bVar29;
                pixels[7] = bVar25;
                pixels[1] = bVar23;
                pixels[2] = (byte)local_f4;
                pixels[3] = (byte)local_fc;
                pixels[6] = (byte)local_104;
              }
              else {
                pixels[2] = bVar29;
                *pixels = bVar25;
                pixels[3] = bVar26;
                pixels[7] = SUB81(dVar6,0);
                pixels[4] = (byte)local_fc;
                pixels[1] = (byte)local_104;
                pixels[5] = (byte)local_f4;
                pixels[6] = bVar23;
              }
              iVar22 = iVar22 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 8;
            } while (iVar22 != iVar33);
          }
          goto _L4734;
        }
LAB_001563c0:
        uVar32 = 0;
        if (uVar16 < 0x41) {
          uVar32 = uVar16;
        }
        bVar23 = (byte)(uVar32 - 1);
        bVar29 = bVar23 & 0x1f;
        uVar20 = 2 << (bVar23 & 0x1f);
        uVar21 = uVar20;
        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;
        if ((uVar32 - 1 & 0x20) != 0) {
          uVar21 = 0;
          uVar30 = uVar20;
        }
        local_dc = uVar21 - 1;
        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        local_e4._0_4_ = 0;
        while( true ) {
          local_f4 = 0;
          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&
             (0.0 < local_c4[image->channel_map[3].offset])) {
            fVar1 = (float)CONCAT44(iStack_d8,local_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_f4 = -1;
            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;
            if (dVar4 < (double)DAT_0029f714) {
              dVar4 = dVar4 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar4) {
                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
              }
              else {
                local_f4 = (longlong)ROUND(dVar4);
              }
            }
          }
          uVar32 = uVar16;
          if ((quantum_info->state).bits == 0) {
            (quantum_info->state).bits = 8;
          }
          while (0 < (int)uVar32) {
            uVar30 = (quantum_info->state).bits;
            uVar21 = uVar30;
            if (uVar16 <= uVar30) {
              uVar21 = uVar16;
            }
            uVar32 = uVar16 - uVar21;
            uVar16 = 0;
            if (-1 < (int)uVar32) {
              uVar16 = uVar32;
            }
            if (uVar30 == 8) {
              *pixels = 0;
            }
            uVar30 = uVar30 - uVar21;
            bVar29 = (byte)uVar16 & 0x1f;
            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;
            if ((uVar16 & 0x20) != 0) {
              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);
            }
            (quantum_info->state).bits = uVar30;
            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));
            if ((uVar30 & 0x20) != 0) {
              bVar29 = 0;
            }
            *pixels = *pixels | bVar29;
            if (uVar30 == 0) {
              pixels = pixels + 1;
              (quantum_info->state).bits = 8;
            }
          }
          local_e4._0_4_ = (uint)local_e4 + 1;
          pixels = pixels + quantum_info->pad;
          local_c4 = local_c4 + image->number_channels;
          if ((uint)local_e4 == (uint)local_fc) break;
          uVar16 = quantum_info->depth;
        }
      }
      goto _L4734;
    case BlueQuantum:
    case YellowQuantum:
_L4852:
      dVar5 = DAT_002a8000;
      dVar4 = _DAT_0029f148;
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportBlueQuantum";
        uVar16 = 0x4e6;
        goto LAB_00159158;
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportBlueQuantum";
        uVar16 = 0x4e7;
        goto LAB_00159135;
      }
      uVar32 = quantum_info->depth;
      if (uVar32 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              uVar15 = SinglePrecisionToHalf
                                 ((float)((longdouble)dVar4 *
                                         (longdouble)local_c4[image->channel_map[2].offset]));
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar4 = local_c4[image->channel_map[2].offset];
              if (dVar4 <= 0.0) {
                iVar22 = 0;
                bVar29 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar4) {
                iVar22 = -1;
                bVar29 = 0xff;
              }
              else {
                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);
                bVar29 = (byte)((uint)iVar22 >> 8);
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else if (uVar32 < 0x11) {
        if (uVar32 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0;
              if (0.0 < local_c4[image->channel_map[2].offset]) {
                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;
                bVar29 = 0xff;
                if (dVar4 < (double)DAT_002a7ff4) {
                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);
                }
              }
              iVar33 = iVar33 + 1;
              *pixels = bVar29;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
LAB_00157c43:
          local_cc = 0;
          iStack_c8 = 0;
          if (uVar32 != 0) {
LAB_00156153:
            uVar30 = 0;
            if (uVar32 < 0x41) {
              uVar30 = uVar32;
            }
            bVar23 = (byte)(uVar30 - 1);
            bVar29 = bVar23 & 0x1f;
            uVar19 = 2 << (bVar23 & 0x1f);
            uVar20 = uVar19;
            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;
            if ((uVar30 - 1 & 0x20) != 0) {
              uVar20 = 0;
              uVar21 = uVar19;
            }
            local_cc = uVar20 - 1;
            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            local_d4 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < local_c4[image->channel_map[2].offset]) {
                fVar1 = (float)CONCAT44(iStack_c8,local_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_e4 = -1;
                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /
                        (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (longlong)ROUND(dVar4);
                  }
                }
              }
              uVar30 = uVar32;
              if ((quantum_info->state).bits == 0) {
                (quantum_info->state).bits = 8;
              }
              while (0 < (int)uVar30) {
                uVar21 = (quantum_info->state).bits;
                uVar20 = uVar21;
                if (uVar32 <= uVar21) {
                  uVar20 = uVar32;
                }
                uVar30 = uVar32 - uVar20;
                uVar32 = 0;
                if (-1 < (int)uVar30) {
                  uVar32 = uVar30;
                }
                if (uVar21 == 8) {
                  *pixels = 0;
                }
                uVar21 = uVar21 - uVar20;
                (quantum_info->state).bits = uVar21;
                bVar29 = (byte)uVar32 & 0x1f;
                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;
                if ((uVar32 & 0x20) != 0) {
                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);
                }
                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));
                if ((uVar21 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar21 == 0) {
                  pixels = pixels + 1;
                  (quantum_info->state).bits = 8;
                }
              }
              local_d4 = local_d4 + 1;
              pixels = pixels + quantum_info->pad;
              local_c4 = local_c4 + image->number_channels;
              if (local_d4 == (uint)local_fc) break;
              uVar32 = quantum_info->depth;
            }
          }
        }
      }
      else if (uVar32 == 0x20) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            dVar4 = (quantum_info->state).inverse_scale;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            do {
              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;
              bVar29 = (byte)((uint)fVar1 >> 8);
              bVar25 = (byte)((uint)fVar1 >> 0x18);
              bVar23 = (byte)((uint)fVar1 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB41(fVar1,0);
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = SUB41(fVar1,0);
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (local_c4[image->channel_map[2].offset] <= 0.0) {
                local_64._0_1_ = 0;
                bVar29 = 0;
                bVar23 = 0;
                bVar25 = 0;
              }
              else {
                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;
                if (dVar5 <= dVar4) {
                  local_64._0_1_ = 0xff;
                  bVar29 = 0xff;
                  bVar23 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                  local_64._0_1_ = (byte)lVar3;
                  bVar29 = (byte)((ulonglong)lVar3 >> 8);
                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                }
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)local_64;
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = (byte)local_64;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar32 != 0x40) goto LAB_00157c43;
        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;
        if (0 < (int)(uint)local_fc) {
          dVar4 = (quantum_info->state).inverse_scale;
          iVar33 = 0;
          dVar5 = quantum_info->minimum;
          EVar12 = quantum_info->endian;
          do {
            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;
            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar23 = (byte)((ulonglong)dVar6 >> 8);
            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);
            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            local_ec = (byte)((ulonglong)dVar6 >> 0x38);
            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (EVar12 == LSBEndian) {
              *pixels = SUB81(dVar6,0);
              pixels[4] = bVar25;
              pixels[5] = bVar29;
              pixels[1] = bVar23;
              pixels[2] = (byte)local_cc;
              pixels[3] = (byte)local_d4;
              pixels[6] = (byte)local_e4;
              pixels[7] = local_ec;
            }
            else {
              pixels[2] = bVar29;
              pixels[3] = bVar25;
              pixels[7] = SUB81(dVar6,0);
              pixels[4] = (byte)local_d4;
              *pixels = local_ec;
              pixels[5] = (byte)local_cc;
              pixels[1] = (byte)local_e4;
              pixels[6] = bVar23;
            }
            iVar33 = iVar33 + 1;
            local_c4 = local_c4 + image->number_channels;
            pixels = pixels + quantum_info->pad + 8;
          } while (iVar33 != (uint)local_fc);
        }
      }
      break;
    case CbYCrYQuantum:
_L4898:
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportCbYCrYQuantum";
        uVar16 = 0x559;
        goto LAB_00159158;
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportCbYCrYQuantum";
        uVar16 = 0x55a;
        goto LAB_00159135;
      }
      uVar16 = quantum_info->depth;
      if (uVar16 == 10) {
        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {
          iVar33 = 0;
          do {
            iVar22 = 0;
            pPVar8 = image->channel_map;
            do {
              uVar16 = (uint)(iVar33 + iVar22) % 3;
              if (uVar16 == 1) {
                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);
              }
              else if (uVar16 == 2) {
                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);
              }
              else {
                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);
              }
              local_10c = (ulonglong)local_64;
              cbcr[iVar22] = (double)local_10c;
              iVar22 = iVar22 + 1;
            } while (iVar22 != 4);
            iVar33 = iVar33 + 4;
            local_64 = (uint)(longlong)ROUND(cbcr[0]);
            uVar32 = local_64 << 0xc;
            local_64 = (uint)(longlong)ROUND(cbcr[2]);
            uVar16 = local_64 * 4;
            local_64 = (uint)(longlong)ROUND(cbcr[1]);
            uVar30 = local_64 << 0x16 | uVar32 | uVar16;
            bVar23 = (byte)(uVar30 >> 0x10);
            bVar29 = (byte)uVar16;
            local_10c._0_1_ = (byte)(uVar30 >> 0x18);
            local_104._0_1_ = (byte)(uVar30 >> 8);
            if (quantum_info->endian == LSBEndian) {
              *pixels = bVar29;
              pixels[2] = bVar23;
              pixels[1] = (byte)local_104;
              pixels[3] = (byte)local_10c;
            }
            else {
              pixels[1] = bVar23;
              *pixels = (byte)local_10c;
              pixels[3] = bVar29;
              pixels[2] = (byte)local_104;
            }
            uVar32 = uVar32 | uVar16;
            sVar11 = image->number_channels;
            local_64 = (uint)(longlong)ROUND(cbcr[3]);
            uVar16 = local_64 << 0x16 | uVar32;
            bVar23 = (byte)(uVar16 >> 0x18);
            bVar25 = (byte)(uVar16 >> 0x10);
            local_10c._0_1_ = (byte)(uVar32 >> 8);
            if (quantum_info->endian == LSBEndian) {
              pixels[4] = bVar29;
              pixels[7] = bVar23;
              pixels[5] = (byte)local_10c;
              pixels[6] = bVar25;
            }
            else {
              pixels[4] = bVar23;
              pixels[5] = bVar25;
              pixels[7] = bVar29;
              pixels[6] = (byte)local_10c;
            }
            local_c4 = local_c4 + image->number_channels + sVar11;
            pixels = pixels + quantum_info->pad + 8;
          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);
        }
      }
      else if (0 < (int)(uint)local_fc) {
        uVar32 = (uint)local_fc - 1;
        local_a8 = 0;
        do {
          iVar33 = 0;
          pPVar8 = image->channel_map;
          do {
            uVar30 = (uint)(local_a8 + iVar33) % 3;
            if (uVar30 == 1) {
              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);
            }
            else if (uVar30 == 2) {
              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);
            }
            else {
              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);
            }
            local_104 = (ulonglong)local_64;
            cbcr[iVar33] = (double)local_104;
            iVar33 = iVar33 + 1;
          } while (iVar33 != 4);
          local_a8 = local_a8 + 4;
          local_bc = 0;
          iStack_b8 = 0;
          if (uVar16 != 0) {
            uVar30 = 0;
            if (uVar16 < 0x41) {
              uVar30 = uVar16;
            }
            bVar23 = (byte)(uVar30 - 1);
            bVar29 = bVar23 & 0x1f;
            uVar19 = 2 << (bVar23 & 0x1f);
            uVar20 = uVar19;
            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;
            if ((uVar30 - 1 & 0x20) != 0) {
              uVar20 = 0;
              uVar21 = uVar19;
            }
            local_bc = uVar20 - 1;
            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);
          }
          local_b4 = 0;
          if (0.0 < cbcr[1]) {
            fVar1 = (float)CONCAT44(iStack_b8,local_bc);
            if (iStack_b8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_b4 = -1;
            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;
            if (dVar4 < (double)DAT_0029f714) {
              dVar4 = dVar4 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar4) {
                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
              }
              else {
                local_b4 = (longlong)ROUND(dVar4);
              }
            }
          }
          uVar30 = (quantum_info->state).bits;
          if (uVar30 == 0) {
            (quantum_info->state).bits = 8;
            uVar30 = 8;
          }
          if ((int)uVar16 < 1) {
            if (!NAN(cbcr[0])) goto LAB_00155924;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar21 = uVar30;
                if (uVar16 <= uVar30) {
                  uVar21 = uVar16;
                }
                uVar20 = uVar16 - uVar21;
                uVar16 = 0;
                if (-1 < (int)uVar20) {
                  uVar16 = uVar20;
                }
                if (uVar30 == 8) {
                  *pixels = 0;
                }
                uVar30 = uVar30 - uVar21;
                (quantum_info->state).bits = uVar30;
                bVar29 = (byte)uVar16 & 0x1f;
                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;
                if ((uVar16 & 0x20) != 0) {
                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);
                }
                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
                if ((uVar30 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar30 != 0) break;
                pixels = pixels + 1;
                (quantum_info->state).bits = 8;
                uVar30 = 8;
                if ((int)uVar20 < 1) goto LAB_0015590b;
              }
              uVar30 = (quantum_info->state).bits;
            } while (0 < (int)uVar20);
LAB_0015590b:
            uVar16 = quantum_info->depth;
            if (NAN(cbcr[0])) {
              local_b4 = 0;
            }
            else {
LAB_00155924:
              local_b4 = 0;
              if (0.0 < cbcr[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar4);
                  }
                }
              }
            }
            if (uVar30 == 0) {
              (quantum_info->state).bits = 8;
              uVar30 = 8;
            }
          }
          if ((int)uVar16 < 1) {
            if (!NAN(cbcr[2])) goto LAB_00155aac;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar21 = uVar30;
                if (uVar16 <= uVar30) {
                  uVar21 = uVar16;
                }
                uVar20 = uVar16 - uVar21;
                uVar16 = 0;
                if (-1 < (int)uVar20) {
                  uVar16 = uVar20;
                }
                if (uVar30 == 8) {
                  *pixels = 0;
                }
                uVar30 = uVar30 - uVar21;
                (quantum_info->state).bits = uVar30;
                bVar29 = (byte)uVar16 & 0x1f;
                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;
                if ((uVar16 & 0x20) != 0) {
                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);
                }
                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
                if ((uVar30 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar30 != 0) break;
                pixels = pixels + 1;
                (quantum_info->state).bits = 8;
                uVar30 = 8;
                if ((int)uVar20 < 1) goto LAB_00155a93;
              }
              uVar30 = (quantum_info->state).bits;
            } while (0 < (int)uVar20);
LAB_00155a93:
            uVar16 = quantum_info->depth;
            if (NAN(cbcr[2])) {
              local_b4 = 0;
            }
            else {
LAB_00155aac:
              local_b4 = 0;
              if (0.0 < cbcr[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar4);
                  }
                }
              }
            }
            if (uVar30 == 0) {
              (quantum_info->state).bits = 8;
              uVar30 = 8;
            }
          }
          if ((int)uVar16 < 1) {
            local_74 = image->number_channels;
            if (!NAN(cbcr[3])) goto LAB_00155c3d;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar21 = uVar30;
                if (uVar16 <= uVar30) {
                  uVar21 = uVar16;
                }
                uVar20 = uVar16 - uVar21;
                uVar16 = 0;
                if (-1 < (int)uVar20) {
                  uVar16 = uVar20;
                }
                if (uVar30 == 8) {
                  *pixels = 0;
                }
                uVar30 = uVar30 - uVar21;
                (quantum_info->state).bits = uVar30;
                bVar29 = (byte)uVar16 & 0x1f;
                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;
                if ((uVar16 & 0x20) != 0) {
                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);
                }
                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
                if ((uVar30 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar30 != 0) break;
                pixels = pixels + 1;
                (quantum_info->state).bits = 8;
                uVar30 = 8;
                if ((int)uVar20 < 1) goto LAB_00155c13;
              }
              uVar30 = (quantum_info->state).bits;
            } while (0 < (int)uVar20);
LAB_00155c13:
            local_74 = image->number_channels;
            uVar16 = quantum_info->depth;
            if (NAN(cbcr[3])) {
              local_b4 = 0;
            }
            else {
LAB_00155c3d:
              local_b4 = 0;
              if (0.0 < cbcr[3]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar4);
                  }
                }
              }
            }
            if (uVar30 == 0) {
              (quantum_info->state).bits = 8;
              uVar30 = 8;
            }
          }
          if ((int)uVar16 < 1) {
            if (!NAN(cbcr[0])) goto LAB_00155dc3;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar21 = uVar30;
                if (uVar16 <= uVar30) {
                  uVar21 = uVar16;
                }
                uVar20 = uVar16 - uVar21;
                uVar16 = 0;
                if (-1 < (int)uVar20) {
                  uVar16 = uVar20;
                }
                if (uVar30 == 8) {
                  *pixels = 0;
                }
                uVar30 = uVar30 - uVar21;
                bVar29 = (byte)uVar16 & 0x1f;
                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;
                if ((uVar16 & 0x20) != 0) {
                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);
                }
                (quantum_info->state).bits = uVar30;
                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
                if ((uVar30 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar30 != 0) break;
                pixels = pixels + 1;
                (quantum_info->state).bits = 8;
                uVar30 = 8;
                if ((int)uVar20 < 1) goto LAB_00155db1;
              }
              uVar30 = (quantum_info->state).bits;
            } while (0 < (int)uVar20);
LAB_00155db1:
            uVar16 = quantum_info->depth;
            if (NAN(cbcr[0])) {
              local_b4 = 0;
            }
            else {
LAB_00155dc3:
              local_b4 = 0;
              if (0.0 < cbcr[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar4);
                  }
                }
              }
            }
            if (uVar30 == 0) {
              (quantum_info->state).bits = 8;
              uVar30 = 8;
            }
          }
          if ((int)uVar16 < 1) {
            if (!NAN(cbcr[2])) goto LAB_00155f45;
            local_fc = 0;
            uVar21 = uVar16;
          }
          else {
            do {
              while( true ) {
                uVar21 = uVar30;
                if (uVar16 <= uVar30) {
                  uVar21 = uVar16;
                }
                uVar20 = uVar16 - uVar21;
                uVar16 = 0;
                if (-1 < (int)uVar20) {
                  uVar16 = uVar20;
                }
                if (uVar30 == 8) {
                  *pixels = 0;
                }
                uVar30 = uVar30 - uVar21;
                (quantum_info->state).bits = uVar30;
                bVar29 = (byte)uVar16 & 0x1f;
                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;
                if ((uVar16 & 0x20) != 0) {
                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);
                }
                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
                if ((uVar30 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar30 != 0) break;
                pixels = pixels + 1;
                (quantum_info->state).bits = 8;
                uVar30 = 8;
                if ((int)uVar20 < 1) goto LAB_00155f33;
              }
              uVar30 = (quantum_info->state).bits;
            } while (0 < (int)uVar20);
LAB_00155f33:
            uVar16 = quantum_info->depth;
            if (NAN(cbcr[2])) {
              local_fc = 0;
            }
            else {
LAB_00155f45:
              local_fc = 0;
              if (0.0 < cbcr[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_fc = -1;
                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_fc = (MagickSizeType)ROUND(dVar4);
                  }
                }
              }
            }
            uVar21 = uVar16;
            if (uVar30 == 0) {
              (quantum_info->state).bits = 8;
            }
          }
          while (0 < (int)uVar21) {
            uVar30 = (quantum_info->state).bits;
            uVar20 = uVar30;
            if (uVar16 <= uVar30) {
              uVar20 = uVar16;
            }
            uVar21 = uVar16 - uVar20;
            uVar16 = 0;
            if (-1 < (int)uVar21) {
              uVar16 = uVar21;
            }
            if (uVar30 == 8) {
              *pixels = 0;
            }
            uVar30 = uVar30 - uVar20;
            (quantum_info->state).bits = uVar30;
            bVar29 = (byte)uVar16 & 0x1f;
            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;
            if ((uVar16 & 0x20) != 0) {
              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);
            }
            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));
            if ((uVar30 & 0x20) != 0) {
              bVar29 = 0;
            }
            *pixels = *pixels | bVar29;
            if (uVar30 == 0) {
              pixels = pixels + 1;
              (quantum_info->state).bits = 8;
            }
          }
          local_c4 = local_c4 + local_74 + image->number_channels;
          pixels = pixels + quantum_info->pad;
          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;
          uVar16 = quantum_info->depth;
        } while( true );
      }
      goto _L4734;
    case CMYKAQuantum:
_L4896:
      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case CMYKOQuantum:
_L4897:
      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case CMYKQuantum:
_L4895:
      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case CyanQuantum:
    case RedQuantum:
_L5026:
      dVar5 = DAT_002a8000;
      dVar4 = _DAT_0029f148;
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportRedQuantum";
        uVar16 = 0xbaa;
        goto LAB_00159158;
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportRedQuantum";
        uVar16 = 0xbab;
        goto LAB_00159135;
      }
      uVar32 = quantum_info->depth;
      if (uVar32 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              uVar15 = SinglePrecisionToHalf
                                 ((float)((longdouble)dVar4 *
                                         (longdouble)local_c4[image->channel_map->offset]));
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar4 = local_c4[image->channel_map->offset];
              if (dVar4 <= 0.0) {
                iVar22 = 0;
                bVar29 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar4) {
                iVar22 = -1;
                bVar29 = 0xff;
              }
              else {
                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);
                bVar29 = (byte)((uint)iVar22 >> 8);
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else if (uVar32 < 0x11) {
        if (uVar32 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0;
              if (0.0 < local_c4[image->channel_map->offset]) {
                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;
                bVar29 = 0xff;
                if (dVar4 < (double)DAT_002a7ff4) {
                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);
                }
              }
              iVar33 = iVar33 + 1;
              *pixels = bVar29;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
LAB_0015742f:
          local_cc = 0;
          iStack_c8 = 0;
          if (uVar32 != 0) {
LAB_0015539d:
            uVar30 = 0;
            if (uVar32 < 0x41) {
              uVar30 = uVar32;
            }
            bVar23 = (byte)(uVar30 - 1);
            bVar29 = bVar23 & 0x1f;
            uVar19 = 2 << (bVar23 & 0x1f);
            uVar20 = uVar19;
            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;
            if ((uVar30 - 1 & 0x20) != 0) {
              uVar20 = 0;
              uVar21 = uVar19;
            }
            local_cc = uVar20 - 1;
            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            local_d4 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < local_c4[image->channel_map->offset]) {
                fVar1 = (float)CONCAT44(iStack_c8,local_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_e4 = -1;
                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /
                        (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (longlong)ROUND(dVar4);
                  }
                }
              }
              uVar30 = uVar32;
              if ((quantum_info->state).bits == 0) {
                (quantum_info->state).bits = 8;
              }
              while (0 < (int)uVar30) {
                uVar21 = (quantum_info->state).bits;
                uVar20 = uVar21;
                if (uVar32 <= uVar21) {
                  uVar20 = uVar32;
                }
                uVar30 = uVar32 - uVar20;
                uVar32 = 0;
                if (-1 < (int)uVar30) {
                  uVar32 = uVar30;
                }
                if (uVar21 == 8) {
                  *pixels = 0;
                }
                uVar21 = uVar21 - uVar20;
                bVar29 = (byte)uVar32 & 0x1f;
                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;
                if ((uVar32 & 0x20) != 0) {
                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);
                }
                (quantum_info->state).bits = uVar21;
                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));
                if ((uVar21 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar21 == 0) {
                  pixels = pixels + 1;
                  (quantum_info->state).bits = 8;
                }
              }
              local_d4 = local_d4 + 1;
              pixels = pixels + quantum_info->pad;
              local_c4 = local_c4 + image->number_channels;
              if (local_d4 == (uint)local_fc) break;
              uVar32 = quantum_info->depth;
            }
          }
        }
      }
      else if (uVar32 == 0x20) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            dVar4 = (quantum_info->state).inverse_scale;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            do {
              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;
              bVar29 = (byte)((uint)fVar1 >> 8);
              bVar25 = (byte)((uint)fVar1 >> 0x18);
              bVar23 = (byte)((uint)fVar1 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB41(fVar1,0);
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = SUB41(fVar1,0);
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (local_c4[image->channel_map->offset] <= 0.0) {
                local_64._0_1_ = 0;
                bVar29 = 0;
                bVar23 = 0;
                bVar25 = 0;
              }
              else {
                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;
                if (dVar5 <= dVar4) {
                  local_64._0_1_ = 0xff;
                  bVar29 = 0xff;
                  bVar23 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                  local_64._0_1_ = (byte)lVar3;
                  bVar29 = (byte)((ulonglong)lVar3 >> 8);
                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                }
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)local_64;
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = (byte)local_64;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar32 != 0x40) goto LAB_0015742f;
        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;
        if (0 < (int)(uint)local_fc) {
          dVar4 = (quantum_info->state).inverse_scale;
          iVar33 = 0;
          dVar5 = quantum_info->minimum;
          EVar12 = quantum_info->endian;
          do {
            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;
            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar23 = (byte)((ulonglong)dVar6 >> 8);
            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);
            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            local_ec = (byte)((ulonglong)dVar6 >> 0x38);
            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (EVar12 == LSBEndian) {
              *pixels = SUB81(dVar6,0);
              pixels[4] = bVar25;
              pixels[5] = bVar29;
              pixels[1] = bVar23;
              pixels[2] = (byte)local_cc;
              pixels[3] = (byte)local_d4;
              pixels[6] = (byte)local_e4;
              pixels[7] = local_ec;
            }
            else {
              pixels[2] = bVar29;
              pixels[3] = bVar25;
              pixels[7] = SUB81(dVar6,0);
              pixels[4] = (byte)local_d4;
              *pixels = local_ec;
              pixels[5] = (byte)local_cc;
              pixels[1] = (byte)local_e4;
              pixels[6] = bVar23;
            }
            iVar33 = iVar33 + 1;
            local_c4 = local_c4 + image->number_channels;
            pixels = pixels + quantum_info->pad + 8;
          } while (iVar33 != (uint)local_fc);
        }
      }
      break;
    case GrayAlphaQuantum:
_L4981:
      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case GrayQuantum:
_L4980:
      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case GreenQuantum:
    case MagentaQuantum:
_L4982:
      dVar5 = DAT_002a8000;
      dVar4 = _DAT_0029f148;
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportGreenQuantum";
        uVar16 = 0x96d;
        goto LAB_00159158;
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportGreenQuantum";
        uVar16 = 0x96e;
        goto LAB_00159135;
      }
      uVar32 = quantum_info->depth;
      if (uVar32 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              uVar15 = SinglePrecisionToHalf
                                 ((float)((longdouble)dVar4 *
                                         (longdouble)local_c4[image->channel_map[1].offset]));
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar4 = local_c4[image->channel_map[1].offset];
              if (dVar4 <= 0.0) {
                iVar22 = 0;
                bVar29 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar4) {
                iVar22 = -1;
                bVar29 = 0xff;
              }
              else {
                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);
                bVar29 = (byte)((uint)iVar22 >> 8);
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else if (uVar32 < 0x11) {
        if (uVar32 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0;
              if (0.0 < local_c4[image->channel_map[1].offset]) {
                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;
                bVar29 = 0xff;
                if (dVar4 < (double)DAT_002a7ff4) {
                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);
                }
              }
              iVar33 = iVar33 + 1;
              *pixels = bVar29;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
LAB_0015755d:
          local_cc = 0;
          iStack_c8 = 0;
          if (uVar32 != 0) {
LAB_001550c5:
            uVar30 = 0;
            if (uVar32 < 0x41) {
              uVar30 = uVar32;
            }
            bVar23 = (byte)(uVar30 - 1);
            bVar29 = bVar23 & 0x1f;
            uVar19 = 2 << (bVar23 & 0x1f);
            uVar20 = uVar19;
            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;
            if ((uVar30 - 1 & 0x20) != 0) {
              uVar20 = 0;
              uVar21 = uVar19;
            }
            local_cc = uVar20 - 1;
            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            local_d4 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < local_c4[image->channel_map[1].offset]) {
                fVar1 = (float)CONCAT44(iStack_c8,local_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_e4 = -1;
                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /
                        (double)DAT_0029f710;
                if (dVar4 < (double)DAT_0029f714) {
                  dVar4 = dVar4 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar4) {
                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);
                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (longlong)ROUND(dVar4);
                  }
                }
              }
              uVar30 = uVar32;
              if ((quantum_info->state).bits == 0) {
                (quantum_info->state).bits = 8;
              }
              while (0 < (int)uVar30) {
                uVar21 = (quantum_info->state).bits;
                uVar20 = uVar21;
                if (uVar32 <= uVar21) {
                  uVar20 = uVar32;
                }
                uVar30 = uVar32 - uVar20;
                uVar32 = 0;
                if (-1 < (int)uVar30) {
                  uVar32 = uVar30;
                }
                if (uVar21 == 8) {
                  *pixels = 0;
                }
                uVar21 = uVar21 - uVar20;
                bVar29 = (byte)uVar32 & 0x1f;
                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;
                if ((uVar32 & 0x20) != 0) {
                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);
                }
                (quantum_info->state).bits = uVar21;
                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));
                if ((uVar21 & 0x20) != 0) {
                  bVar29 = 0;
                }
                *pixels = *pixels | bVar29;
                if (uVar21 == 0) {
                  pixels = pixels + 1;
                  (quantum_info->state).bits = 8;
                }
              }
              local_d4 = local_d4 + 1;
              pixels = pixels + quantum_info->pad;
              local_c4 = local_c4 + image->number_channels;
              if (local_d4 == (uint)local_fc) break;
              uVar32 = quantum_info->depth;
            }
          }
        }
      }
      else if (uVar32 == 0x20) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            dVar4 = (quantum_info->state).inverse_scale;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            do {
              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;
              bVar29 = (byte)((uint)fVar1 >> 8);
              bVar25 = (byte)((uint)fVar1 >> 0x18);
              bVar23 = (byte)((uint)fVar1 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB41(fVar1,0);
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = SUB41(fVar1,0);
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (local_c4[image->channel_map[1].offset] <= 0.0) {
                local_64._0_1_ = 0;
                bVar29 = 0;
                bVar23 = 0;
                bVar25 = 0;
              }
              else {
                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;
                if (dVar5 <= dVar4) {
                  local_64._0_1_ = 0xff;
                  bVar29 = 0xff;
                  bVar23 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                  local_64._0_1_ = (byte)lVar3;
                  bVar29 = (byte)((ulonglong)lVar3 >> 8);
                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                }
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)local_64;
                pixels[1] = bVar29;
                pixels[2] = bVar23;
                pixels[3] = bVar25;
              }
              else {
                *pixels = bVar25;
                pixels[1] = bVar23;
                pixels[2] = bVar29;
                pixels[3] = (byte)local_64;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 4;
            } while (iVar33 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar32 != 0x40) goto LAB_0015755d;
        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;
        if (0 < (int)(uint)local_fc) {
          dVar4 = (quantum_info->state).inverse_scale;
          iVar33 = 0;
          dVar5 = quantum_info->minimum;
          EVar12 = quantum_info->endian;
          do {
            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;
            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar23 = (byte)((ulonglong)dVar6 >> 8);
            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);
            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            local_ec = (byte)((ulonglong)dVar6 >> 0x38);
            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (EVar12 == LSBEndian) {
              *pixels = SUB81(dVar6,0);
              pixels[4] = bVar25;
              pixels[5] = bVar29;
              pixels[1] = bVar23;
              pixels[2] = (byte)local_cc;
              pixels[3] = (byte)local_d4;
              pixels[6] = (byte)local_e4;
              pixels[7] = local_ec;
            }
            else {
              pixels[2] = bVar29;
              pixels[3] = bVar25;
              pixels[7] = SUB81(dVar6,0);
              pixels[4] = (byte)local_d4;
              *pixels = local_ec;
              pixels[5] = (byte)local_cc;
              pixels[1] = (byte)local_e4;
              pixels[6] = bVar23;
            }
            iVar33 = iVar33 + 1;
            local_c4 = local_c4 + image->number_channels;
            pixels = pixels + quantum_info->pad + 8;
          } while (iVar33 != (uint)local_fc);
        }
      }
      break;
    case IndexAlphaQuantum:
_L5025:
      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case IndexQuantum:
_L5024:
      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case OpacityQuantum:
_L5068:
      dVar5 = DAT_002a8000;
      dVar4 = _DAT_0029f148;
      if (exception == (ExceptionInfo *)0x0) {
        pcVar34 = "ExportOpacityQuantum";
        uVar16 = 0xb41;
        goto LAB_00159158;
      }
      if (exception->signature != 0xabacadab) {
        pcVar34 = "ExportOpacityQuantum";
        uVar16 = 0xb42;
        goto LAB_00159135;
      }
      uVar16 = quantum_info->depth;
      iVar33 = (uint)local_fc;
      if (uVar16 == 0x10) {
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              fVar1 = 0.0;
              if (image->channel_map[4].traits == BlendPixelTrait) {
                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *
                        (float)dVar4;
              }
              uVar15 = SinglePrecisionToHalf(fVar1);
              bVar29 = (byte)(uVar15 >> 8);
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)uVar15;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)uVar15;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        else {
          iVar33 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              iVar22 = 0;
              bVar29 = 0;
              if ((image->channel_map[4].traits == BlendPixelTrait) &&
                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)
                 ) {
                if (DAT_0029f710 <= fVar1) {
                  iVar22 = -1;
                  bVar29 = 0xff;
                }
                else {
                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);
                  bVar29 = (byte)((uint)iVar22 >> 8);
                }
              }
              if (quantum_info->endian == LSBEndian) {
                *pixels = (byte)iVar22;
                pixels[1] = bVar29;
              }
              else {
                *pixels = bVar29;
                pixels[1] = (byte)iVar22;
              }
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 2;
            } while (iVar33 != (uint)local_fc);
          }
        }
        goto _L4734;
      }
      if (uVar16 < 0x11) {
        if (uVar16 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar33 = 0;
            do {
              bVar29 = 0;
              if ((image->channel_map[4].traits == BlendPixelTrait) &&
                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {
                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /
                        DAT_002a7ff0;
                bVar29 = 0xff;
                if (fVar1 < DAT_002a7ff4) {
                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);
                }
              }
              *pixels = bVar29;
              iVar33 = iVar33 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 1;
            } while (iVar33 != (uint)local_fc);
          }
          goto _L4734;
        }
LAB_0015768b:
        local_dc = 0;
        iStack_d8 = 0;
        if (uVar16 != 0) goto LAB_00154e80;
      }
      else {
        if (uVar16 == 0x20) {
          if (quantum_info->format == FloatingPointQuantumFormat) {
            if (0 < (int)(uint)local_fc) {
              iVar33 = 0;
              dVar4 = (quantum_info->state).inverse_scale;
              dVar5 = quantum_info->minimum;
              EVar12 = quantum_info->endian;
              do {
                if (image->channel_map[4].traits == BlendPixelTrait) {
                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];
                }
                else {
                  fVar1 = 0.0;
                }
                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;
                bVar29 = (byte)((uint)fVar1 >> 8);
                bVar25 = (byte)((uint)fVar1 >> 0x18);
                bVar23 = (byte)((uint)fVar1 >> 0x10);
                if (EVar12 == LSBEndian) {
                  *pixels = SUB41(fVar1,0);
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = SUB41(fVar1,0);
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          else {
            iVar33 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((image->channel_map[4].traits != BlendPixelTrait) ||
                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {
                  local_64._0_1_ = 0;
                  bVar29 = 0;
                  bVar23 = 0;
                  bVar25 = 0;
                }
                else {
                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *
                          (double)DAT_002a7fec;
                  if (dVar5 <= dVar4) {
                    local_64._0_1_ = 0xff;
                    bVar29 = 0xff;
                    bVar23 = 0xff;
                    bVar25 = 0xff;
                  }
                  else {
                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);
                    local_64._0_1_ = (byte)lVar3;
                    bVar29 = (byte)((ulonglong)lVar3 >> 8);
                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);
                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);
                  }
                }
                if (quantum_info->endian == LSBEndian) {
                  *pixels = (byte)local_64;
                  pixels[1] = bVar29;
                  pixels[2] = bVar23;
                  pixels[3] = bVar25;
                }
                else {
                  *pixels = bVar25;
                  pixels[1] = bVar23;
                  pixels[2] = bVar29;
                  pixels[3] = (byte)local_64;
                }
                iVar33 = iVar33 + 1;
                local_c4 = local_c4 + image->number_channels;
                pixels = pixels + quantum_info->pad + 4;
              } while (iVar33 != (uint)local_fc);
            }
          }
          goto _L4734;
        }
        if (uVar16 != 0x40) goto LAB_0015768b;
        if (quantum_info->format == FloatingPointQuantumFormat) {
          if (0 < (int)(uint)local_fc) {
            dVar4 = (quantum_info->state).inverse_scale;
            iVar22 = 0;
            dVar5 = quantum_info->minimum;
            EVar12 = quantum_info->endian;
            do {
              if (image->channel_map[4].traits == BlendPixelTrait) {
                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];
              }
              else {
                dVar6 = 0.0;
              }
              dVar6 = dVar6 * dVar4 + dVar5;
              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar23 = (byte)((ulonglong)dVar6 >> 8);
              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);
              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (EVar12 == LSBEndian) {
                *pixels = SUB81(dVar6,0);
                pixels[4] = bVar26;
                pixels[5] = bVar29;
                pixels[7] = bVar25;
                pixels[1] = bVar23;
                pixels[2] = (byte)local_e4;
                pixels[3] = (byte)local_f4;
                pixels[6] = (byte)local_fc;
              }
              else {
                pixels[2] = bVar29;
                *pixels = bVar25;
                pixels[3] = bVar26;
                pixels[7] = SUB81(dVar6,0);
                pixels[4] = (byte)local_f4;
                pixels[1] = (byte)local_fc;
                pixels[5] = (byte)local_e4;
                pixels[6] = bVar23;
              }
              iVar22 = iVar22 + 1;
              local_c4 = local_c4 + image->number_channels;
              pixels = pixels + quantum_info->pad + 8;
            } while (iVar22 != iVar33);
          }
          goto _L4734;
        }
LAB_00154e80:
        uVar32 = 0;
        if (uVar16 < 0x41) {
          uVar32 = uVar16;
        }
        bVar23 = (byte)(uVar32 - 1);
        bVar29 = bVar23 & 0x1f;
        uVar20 = 2 << (bVar23 & 0x1f);
        uVar21 = uVar20;
        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;
        if ((uVar32 - 1 & 0x20) != 0) {
          uVar21 = 0;
          uVar30 = uVar20;
        }
        local_dc = uVar21 - 1;
        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        iVar33 = 0;
        while( true ) {
          local_f4 = 0;
          if ((image->channel_map[4].traits == BlendPixelTrait) &&
             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {
            fVar1 = (float)CONCAT44(iStack_d8,local_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_f4 = -1;
            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /
                    DAT_0029f710;
            if (fVar1 < DAT_0029f714) {
              fVar1 = fVar1 + DAT_0029f124;
              if (DAT_0029f134 <= fVar1) {
                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);
                local_f4 = CONCAT44(iStack_60 + -0x80000000,
                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));
              }
              else {
                local_f4 = (longlong)ROUND(fVar1);
              }
            }
          }
          uVar32 = uVar16;
          if ((quantum_info->state).bits == 0) {
            (quantum_info->state).bits = 8;
          }
          while (0 < (int)uVar32) {
            uVar30 = (quantum_info->state).bits;
            uVar21 = uVar30;
            if (uVar16 <= uVar30) {
              uVar21 = uVar16;
            }
            uVar32 = uVar16 - uVar21;
            uVar16 = 0;
            if (-1 < (int)uVar32) {
              uVar16 = uVar32;
            }
            if (uVar30 == 8) {
              *pixels = 0;
            }
            uVar30 = uVar30 - uVar21;
            bVar29 = (byte)uVar16 & 0x1f;
            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;
            if ((uVar16 & 0x20) != 0) {
              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);
            }
            (quantum_info->state).bits = uVar30;
            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));
            if ((uVar30 & 0x20) != 0) {
              bVar29 = 0;
            }
            *pixels = *pixels | bVar29;
            if (uVar30 == 0) {
              pixels = pixels + 1;
              (quantum_info->state).bits = 8;
            }
          }
          iVar33 = iVar33 + 1;
          pixels = pixels + quantum_info->pad;
          local_c4 = local_c4 + image->number_channels;
          if (iVar33 == (uint)local_fc) break;
          uVar16 = quantum_info->depth;
        }
      }
      goto _L4734;
    case RGBAQuantum:
_L5114:
      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      break;
    case RGBOQuantum:
_L5115:
      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
      goto _L4734;
    case RGBQuantum:
_L5113:
      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);
    }
    if (1 < uVar16) goto _L4734;
  }
  if (image_view == (CacheView *)0x0) {
    pQVar18 = GetAuthenticPixelQueue(image);
  }
  else {
    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);
  }
  if (0 < (int)(uint)local_fc) {
    sVar11 = image->number_channels;
    iVar33 = image->channel_map->offset;
    iVar22 = image->channel_map[1].offset;
    iVar28 = 0;
    pQVar18 = pQVar18 + iVar33;
    do {
      QVar2 = *pQVar18;
      iVar28 = iVar28 + 1;
      *pQVar18 = pQVar18[iVar22 - iVar33];
      pQVar18[iVar22 - iVar33] = QVar2;
      pQVar18 = pQVar18 + sVar11;
    } while (iVar28 != (uint)local_fc);
  }
_L4734:
  if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_c0;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4
ExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)

{
  float fVar1;
  undefined8 uVar2;
  double dVar3;
  longlong lVar4;
  double dVar5;
  double dVar6;
  int *piVar7;
  float fVar8;
  double dVar9;
  undefined2 uVar10;
  uint uVar11;
  double *pdVar12;
  int iVar13;
  undefined8 *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  int iVar18;
  byte bVar19;
  double *pdVar20;
  byte bVar21;
  byte bVar22;
  int *piVar23;
  int iVar24;
  byte bVar25;
  uint uVar26;
  int iVar27;
  int iVar28;
  uint uVar29;
  int in_GS_OFFSET;
  undefined8 uVar30;
  char *pcVar31;
  ulonglong local_10c;
  ulonglong local_104;
  undefined8 local_fc;
  undefined8 uStack_f4;
  byte bStack_ec;
  undefined8 uStack_e4;
  int iStack_dc;
  int iStack_d8;
  int iStack_d4;
  int iStack_cc;
  int iStack_c8;
  int local_c4;
  undefined4 local_c0;
  int local_bc;
  int iStack_b8;
  undefined8 local_b4;
  int local_a8;
  int local_74;
  uint uStack_64;
  int iStack_60;
  double adStack_44 [4];
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,
                  "ExportQuantumPixels");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,
                  "ExportQuantumPixels");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,
                   param_1 + 0x318);
  }
  if (param_3 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,
                  "ExportQuantumPixels");
  }
  if (param_3[0x17] != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                  0xf35,"ExportQuantumPixels");
  }
  if (param_5 == (byte *)0x0) {
    param_5 = (byte *)GetQuantumPixels(param_3);
  }
  uVar11 = param_4 - 7;
  if (param_2 == 0) {
    uVar30 = GetImageExtent(param_1);
    local_c4 = GetVirtualPixelQueue(param_1);
    if (param_3[0xc] == 1) {
      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);
      goto LAB_001548e3;
    }
LAB_001547f3:
    if (1 < uVar11) goto LAB_001547fe;
LAB_00154999:
    local_fc._0_4_ = (uint)uVar30;
    iVar13 = GetAuthenticPixelQueue(param_1);
    if (0 < (int)(uint)local_fc) {
      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);
      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);
      iVar28 = *(int *)(param_1 + 0x298);
      iVar24 = 0;
      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);
      do {
        uVar2 = *puVar14;
        iVar24 = iVar24 + 1;
        *puVar14 = puVar14[iVar27 - iVar18];
        puVar14[iVar27 - iVar18] = uVar2;
        puVar14 = puVar14 + iVar28;
      } while (iVar24 != (uint)local_fc);
    }
    FUN_00135560(param_3);
    local_c0 = GetQuantumExtent(param_1,param_3,param_4);
    switch(param_4) {
    case 1:
      goto code_r0x00154c08;
    case 2:
      goto code_r0x00156619;
    case 3:
      goto code_r0x001565ed;
    case 4:
      goto code_r0x00154848;
    case 5:
      goto code_r0x00156375;
    case 6:
    case 0x1a:
      goto code_r0x001560f3;
    case 7:
    case 0x16:
      goto code_r0x001560c7;
    case 8:
    case 0x19:
      goto code_r0x00154a5f;
    case 9:
      goto code_r0x00155641;
    case 10:
      goto code_r0x00155615;
    case 0xb:
      goto code_r0x001555e9;
    case 0xc:
      goto code_r0x001555bd;
    case 0xd:
    case 0x15:
      goto code_r0x0015533d;
    case 0xe:
      goto code_r0x00155311;
    case 0xf:
      goto code_r0x001552e5;
    case 0x10:
    case 0x13:
      goto code_r0x00155065;
    case 0x11:
      goto code_r0x00155039;
    case 0x12:
      goto code_r0x0015500d;
    case 0x14:
      goto code_r0x00154e20;
    case 0x17:
      goto code_r0x00154df4;
    }
  }
  else {
    uVar30 = GetCacheViewExtent(param_2);
    local_c4 = GetCacheViewVirtualPixelQueue(param_2);
    if (param_3[0xc] != 1) goto LAB_001547f3;
    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);
LAB_001548e3:
    dVar3 = _DAT_0029f148;
    iVar13 = *(int *)(param_1 + 0x18);
    if (iVar13 < 1) goto LAB_001547f3;
    piVar7 = *(int **)(param_1 + 0x2a8);
    iVar18 = piVar7[0xd];
    iVar27 = *(int *)(param_1 + 0x298);
    iVar28 = 0;
    do {
      if (iVar18 == 0) {
        dVar5 = 1.0;
      }
      else {
        dVar5 = pdVar12[piVar7[0xe]] * dVar3;
      }
      pdVar20 = pdVar12;
      piVar23 = piVar7;
      if (0 < iVar27) {
        do {
          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {
            *pdVar20 = *pdVar20 * dVar5;
          }
          piVar23 = piVar23 + 3;
          pdVar20 = pdVar20 + 1;
        } while (piVar23 != piVar7 + iVar27 * 3);
      }
      pdVar12 = pdVar12 + iVar27;
      iVar28 = iVar28 + 1;
    } while (iVar28 != iVar13);
    if (uVar11 < 2) goto LAB_00154999;
LAB_001547fe:
    local_fc._0_4_ = (uint)uVar30;
    FUN_00135560(param_3);
    local_c0 = GetQuantumExtent(param_1,param_3,param_4);
    switch(param_4) {
    default:
      goto LAB_001548a8;
    case 1:
code_r0x00154c08:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      fVar1 = DAT_0029f710;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportAlphaQuantum";
        uVar11 = 0xfb;
code_r0x00159158:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,
                      pcVar31);
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportAlphaQuantum";
        uVar11 = 0xfc;
code_r0x00159135:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                      uVar11,pcVar31);
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
                fVar1 = 1.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar3 *
                               (longdouble)
                               *(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
code_r0x00157b5e:
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                if (dVar3 <= 0.0) {
                  iVar18 = 0;
                  bVar25 = 0;
                }
                else {
                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;
                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                  bVar25 = (byte)((uint)iVar18 >> 8);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0xff;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                bVar25 = 0;
                if (0.0 < dVar3) {
                  dVar3 = dVar3 / (double)DAT_002a7ff0;
                  if ((double)DAT_002a7ff4 <= dVar3) {
                    bVar25 = 0xff;
                  }
                  else {
                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                  }
                }
              }
              *param_5 = bVar25;
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x00157d50:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x00154c68;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                fVar8 = fVar1;
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                  fVar8 = (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                }
                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar8 >> 8);
                bVar21 = (byte)((uint)fVar8 >> 0x18);
                bVar19 = (byte)((uint)fVar8 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar8,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar8,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
code_r0x00157c2d:
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                  if (dVar3 <= 0.0) {
                    uStack_64._0_1_ = 0;
                    bVar25 = 0;
                    bVar19 = 0;
                    bVar21 = 0;
                  }
                  else {
                    dVar3 = dVar3 * (double)DAT_002a7fec;
                    if (dVar5 <= dVar3) goto code_r0x00157c2d;
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x00157d50;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            dVar6 = (double)DAT_0029f710;
            do {
              dVar9 = dVar6;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
              }
              dVar9 = dVar9 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar9 >> 8);
              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar9,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_f4;
                param_5[3] = (byte)local_fc;
                param_5[6] = (byte)local_104;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar9,0);
                param_5[4] = (byte)local_fc;
                param_5[1] = (byte)local_104;
                param_5[5] = (byte)uStack_f4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x00154c68:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        uStack_e4._0_4_ = 0;
        do {
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
            dVar3 = (double)DAT_0029f710;
code_r0x001566ad:
            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            uStack_f4 = -1;
            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                uStack_f4 = (longlong)ROUND(dVar3);
              }
            }
          }
          else {
            uStack_f4 = 0;
            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
            if (0.0 < dVar3) goto code_r0x001566ad;
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          uStack_e4._0_4_ = (uint)uStack_e4 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if ((uint)uStack_e4 == (uint)local_fc) break;
          uVar11 = *param_3;
        } while( true );
      }
      goto LAB_001548a8;
    case 2:
code_r0x00156619:
      FUN_00146770(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 3:
code_r0x001565ed:
      FUN_0014fd90(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 4:
code_r0x00154848:
      FUN_0013fa50(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 5:
code_r0x00156375:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (*(int *)(param_1 + 4) != 2) {
        ThrowMagickException
                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,
                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);
        goto LAB_001548a8;
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                fVar1 = 0.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar3 *
                               (longdouble)
                               *(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                 dVar3 <= 0.0)) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                 0.0 < dVar3)) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x00158120:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x001563c0;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                  fVar1 = 0.0;
                }
                else {
                  fVar1 = (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
                }
                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar1 >> 8);
                bVar21 = (byte)((uint)fVar1 >> 0x18);
                bVar19 = (byte)((uint)fVar1 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar1,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar1,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                   dVar3 <= 0.0)) {
                  uStack_64._0_1_ = 0;
                  bVar25 = 0;
                  bVar19 = 0;
                  bVar21 = 0;
                }
                else {
                  dVar3 = dVar3 * (double)DAT_002a7fec;
                  if (dVar5 <= dVar3) {
                    uStack_64._0_1_ = 0xff;
                    bVar25 = 0xff;
                    bVar19 = 0xff;
                    bVar21 = 0xff;
                  }
                  else {
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x00158120;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                dVar6 = 0.0;
              }
              else {
                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
              }
              dVar6 = dVar6 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar6 >> 8);
              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar6,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_f4;
                param_5[3] = (byte)local_fc;
                param_5[6] = (byte)local_104;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar6,0);
                param_5[4] = (byte)local_fc;
                param_5[1] = (byte)local_104;
                param_5[5] = (byte)uStack_f4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x001563c0:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        uStack_e4._0_4_ = 0;
        while( true ) {
          uStack_f4 = 0;
          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
             0.0 < dVar3)) {
            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            uStack_f4 = -1;
            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                uStack_f4 = (longlong)ROUND(dVar3);
              }
            }
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          uStack_e4._0_4_ = (uint)uStack_e4 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if ((uint)uStack_e4 == (uint)local_fc) break;
          uVar11 = *param_3;
        }
      }
      goto LAB_001548a8;
    case 6:
    case 0x1a:
code_r0x001560f3:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportBlueQuantum";
        uVar11 = 0x4e6;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportBlueQuantum";
        uVar11 = 0x4e7;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 +
                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x00157c43:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x00156153:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                param_3[0x14] = uVar17;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)
                      * (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x00157c43;
        if (param_3[2] != 1) goto code_r0x00156153;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 9:
code_r0x00155641:
      if (param_6 == 0) {
        pcVar31 = "ExportCbYCrYQuantum";
        uVar11 = 0x559;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportCbYCrYQuantum";
        uVar11 = 0x55a;
        goto code_r0x00159135;
      }
      uVar11 = *param_3;
      if (uVar11 == 10) {
        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {
          iVar13 = 0;
          do {
            iVar27 = 0;
            iVar18 = *(int *)(param_1 + 0x2a8);
            do {
              uVar11 = (uint)(iVar13 + iVar27) % 3;
              if (uVar11 == 1) {
                uStack_64 = (uint)(longlong)
                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));
              }
              else if (uVar11 == 2) {
                uStack_64 = (uint)(longlong)
                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));
              }
              else {
                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));
              }
              local_10c = (ulonglong)uStack_64;
              adStack_44[iVar27] = (double)local_10c;
              iVar27 = iVar27 + 1;
            } while (iVar27 != 4);
            iVar13 = iVar13 + 4;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);
            uVar29 = uStack_64 << 0xc;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);
            uVar11 = uStack_64 * 4;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);
            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;
            bVar19 = (byte)(uVar26 >> 0x10);
            bVar25 = (byte)uVar11;
            local_10c._0_1_ = (byte)(uVar26 >> 0x18);
            local_104._0_1_ = (byte)(uVar26 >> 8);
            if (param_3[0x10] == 1) {
              *param_5 = bVar25;
              param_5[2] = bVar19;
              param_5[1] = (byte)local_104;
              param_5[3] = (byte)local_10c;
            }
            else {
              param_5[1] = bVar19;
              *param_5 = (byte)local_10c;
              param_5[3] = bVar25;
              param_5[2] = (byte)local_104;
            }
            uVar29 = uVar29 | uVar11;
            iVar18 = *(int *)(param_1 + 0x298);
            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);
            uVar11 = uStack_64 << 0x16 | uVar29;
            bVar19 = (byte)(uVar11 >> 0x18);
            bVar21 = (byte)(uVar11 >> 0x10);
            local_10c._0_1_ = (byte)(uVar29 >> 8);
            if (param_3[0x10] == 1) {
              param_5[4] = bVar25;
              param_5[7] = bVar19;
              param_5[5] = (byte)local_10c;
              param_5[6] = bVar21;
            }
            else {
              param_5[4] = bVar19;
              param_5[5] = bVar21;
              param_5[7] = bVar25;
              param_5[6] = (byte)local_10c;
            }
            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);
        }
      }
      else if (0 < (int)(uint)local_fc) {
        uVar29 = (uint)local_fc - 1;
        local_a8 = 0;
        do {
          iVar18 = 0;
          iVar13 = *(int *)(param_1 + 0x2a8);
          do {
            uVar26 = (uint)(local_a8 + iVar18) % 3;
            if (uVar26 == 1) {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))
              ;
            }
            else if (uVar26 == 2) {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))
              ;
            }
            else {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));
            }
            local_104 = (ulonglong)uStack_64;
            adStack_44[iVar18] = (double)local_104;
            iVar18 = iVar18 + 1;
          } while (iVar18 != 4);
          local_a8 = local_a8 + 4;
          local_bc = 0;
          iStack_b8 = 0;
          if (uVar11 != 0) {
            uVar26 = 0;
            if (uVar11 < 0x41) {
              uVar26 = uVar11;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            local_bc = uVar16 - 1;
            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          local_b4 = 0;
          if (0.0 < adStack_44[1]) {
            fVar1 = (float)CONCAT44(iStack_b8,local_bc);
            if (iStack_b8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_b4 = -1;
            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                local_b4 = (longlong)ROUND(dVar3);
              }
            }
          }
          uVar26 = param_3[0x14];
          if (uVar26 == 0) {
            param_3[0x14] = 8;
            uVar26 = 8;
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[0])) goto code_r0x00155924;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x0015590b;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x0015590b:
            uVar11 = *param_3;
            if (NAN(adStack_44[0])) {
              local_b4 = 0;
            }
            else {
code_r0x00155924:
              local_b4 = 0;
              if (0.0 < adStack_44[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[2])) goto code_r0x00155aac;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155a93;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155a93:
            uVar11 = *param_3;
            if (NAN(adStack_44[2])) {
              local_b4 = 0;
            }
            else {
code_r0x00155aac:
              local_b4 = 0;
              if (0.0 < adStack_44[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            local_74 = *(int *)(param_1 + 0x298);
            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155c13;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155c13:
            local_74 = *(int *)(param_1 + 0x298);
            uVar11 = *param_3;
            if (NAN(adStack_44[3])) {
              local_b4 = 0;
            }
            else {
code_r0x00155c3d:
              local_b4 = 0;
              if (0.0 < adStack_44[3]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                param_3[0x14] = uVar26;
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155db1;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155db1:
            uVar11 = *param_3;
            if (NAN(adStack_44[0])) {
              local_b4 = 0;
            }
            else {
code_r0x00155dc3:
              local_b4 = 0;
              if (0.0 < adStack_44[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[2])) goto code_r0x00155f45;
            local_fc = 0;
            uVar17 = uVar11;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155f33;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155f33:
            uVar11 = *param_3;
            if (NAN(adStack_44[2])) {
              local_fc = 0;
            }
            else {
code_r0x00155f45:
              local_fc = 0;
              if (0.0 < adStack_44[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_fc = -1;
                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_fc = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            uVar17 = uVar11;
            if (uVar26 == 0) {
              param_3[0x14] = 8;
            }
          }
          while (0 < (int)uVar17) {
            uVar26 = param_3[0x14];
            uVar16 = uVar26;
            if (uVar11 <= uVar26) {
              uVar16 = uVar11;
            }
            uVar17 = uVar11 - uVar16;
            uVar11 = 0;
            if (-1 < (int)uVar17) {
              uVar11 = uVar17;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar16;
            param_3[0x14] = uVar26;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;
          param_5 = param_5 + param_3[9];
          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;
          uVar11 = *param_3;
        } while( true );
      }
      goto LAB_001548a8;
    case 10:
code_r0x00155615:
      FUN_00139c20(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xb:
code_r0x001555e9:
      FUN_0013bd70(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xc:
code_r0x001555bd:
      FUN_00136f80(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xd:
    case 0x15:
code_r0x0015533d:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportRedQuantum";
        uVar11 = 0xbaa;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportRedQuantum";
        uVar11 = 0xbab;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)
                                           ));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x0015742f:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x0015539d:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                param_3[0x14] = uVar17;
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                      (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x0015742f;
        if (param_3[2] != 1) goto code_r0x0015539d;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 0xe:
code_r0x00155311:
      FUN_00152ff0(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xf:
code_r0x001552e5:
      FUN_0013def0(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x10:
    case 0x13:
code_r0x00155065:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportGreenQuantum";
        uVar11 = 0x96d;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportGreenQuantum";
        uVar11 = 0x96e;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 +
                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x0015755d:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x001550c5:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                param_3[0x14] = uVar17;
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)
                      * (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x0015755d;
        if (param_3[2] != 1) goto code_r0x001550c5;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 0x11:
code_r0x00155039:
      FUN_00138a40(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x12:
code_r0x0015500d:
      FUN_00136440(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x14:
code_r0x00154e20:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportOpacityQuantum";
        uVar11 = 0xb41;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportOpacityQuantum";
        uVar11 = 0xb42;
        goto code_r0x00159135;
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              fVar1 = 0.0;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                fVar1 = (DAT_0029f710 -
                        (float)*(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *
                        (float)dVar3;
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              iVar18 = 0;
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
                 (fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                 0.0 < fVar1)) {
                if (DAT_0029f710 <= fVar1) {
                  iVar18 = -1;
                  bVar25 = 0xff;
                }
                else {
                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);
                  bVar25 = (byte)((uint)iVar18 >> 8);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
                 (fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                 0.0 < fVar1)) {
                fVar1 = fVar1 / DAT_002a7ff0;
                bVar25 = 0xff;
                if (fVar1 < DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);
                }
              }
              *param_5 = bVar25;
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x0015768b:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x00154e80;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                  fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                }
                else {
                  fVar1 = 0.0;
                }
                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar1 >> 8);
                bVar21 = (byte)((uint)fVar1 >> 0x18);
                bVar19 = (byte)((uint)fVar1 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar1,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar1,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||
                   (dVar3 = (double)DAT_0029f710 -
                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                   dVar3 <= 0.0)) {
                  uStack_64._0_1_ = 0;
                  bVar25 = 0;
                  bVar19 = 0;
                  bVar21 = 0;
                }
                else {
                  dVar3 = dVar3 * (double)DAT_002a7fec;
                  if (dVar5 <= dVar3) {
                    uStack_64._0_1_ = 0xff;
                    bVar25 = 0xff;
                    bVar19 = 0xff;
                    bVar21 = 0xff;
                  }
                  else {
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x0015768b;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                dVar6 = (double)DAT_0029f710 -
                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
              }
              else {
                dVar6 = 0.0;
              }
              dVar6 = dVar6 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar6 >> 8);
              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar6,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_e4;
                param_5[3] = (byte)uStack_f4;
                param_5[6] = (byte)local_fc;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar6,0);
                param_5[4] = (byte)uStack_f4;
                param_5[1] = (byte)local_fc;
                param_5[5] = (byte)uStack_e4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x00154e80:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        iVar13 = 0;
        while( true ) {
          uStack_f4 = 0;
          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
             (fVar1 = DAT_0029f710 -
                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
             0.0 < fVar1)) {
            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar8 = fVar8 + DAT_0029f714;
            }
            uStack_f4 = -1;
            fVar1 = (fVar8 * fVar1) / DAT_0029f710;
            if (fVar1 < DAT_0029f714) {
              fVar1 = fVar1 + DAT_0029f124;
              if (DAT_0029f134 <= fVar1) {
                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,
                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));
              }
              else {
                uStack_f4 = (longlong)ROUND(fVar1);
              }
            }
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          iVar13 = iVar13 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if (iVar13 == (uint)local_fc) break;
          uVar11 = *param_3;
        }
      }
      goto LAB_001548a8;
    case 0x16:
code_r0x001560c7:
      local_fc._0_4_ = (uint)uVar30;
      FUN_00149950(uVar30,local_c4,param_5,param_6);
      break;
    case 0x17:
code_r0x00154df4:
      FUN_0014cb30(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x19:
code_r0x00154a5f:
      local_fc._0_4_ = (uint)uVar30;
      FUN_001430e0(uVar30,local_c4,param_5,param_6);
    }
    if (1 < uVar11) goto LAB_001548a8;
  }
  if (param_2 == 0) {
    iVar13 = GetAuthenticPixelQueue(param_1);
  }
  else {
    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);
  }
  if (0 < (int)(uint)local_fc) {
    iVar18 = *(int *)(param_1 + 0x298);
    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);
    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);
    iVar24 = 0;
    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);
    do {
      uVar30 = *puVar14;
      iVar24 = iVar24 + 1;
      *puVar14 = puVar14[iVar28 - iVar27];
      puVar14[iVar28 - iVar27] = uVar30;
      puVar14 = puVar14 + iVar18;
    } while (iVar24 != (uint)local_fc);
  }
LAB_001548a8:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_c0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}


CALL 0x0003bf88
ADD EAX,0x28490b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x10c
MOV EBX,dword ptr [ESP + 0x124]
MOV EDI,dword ptr [ESP + 0x134]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x120]
MOV EBP,dword ptr [ESP + 0x130]
MOV dword ptr [ESP + 0x18],EBX
MOV EBX,dword ptr [ESP + 0x128]
MOV dword ptr [ESP + 0xa8],EDI
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xfc],EDI
XOR EDI,EDI
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x8],EBX
TEST EAX,EAX
JZ 0x001592ae
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [EAX + 0x3344],0xabacadab
JNZ 0x0015928b
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x3328]
TEST EAX,EAX
JNZ 0x00154b40
MOV EDI,dword ptr [ESP + 0x8]
TEST EDI,EDI
JZ 0x00159263
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x5c],0xabacadab
JNZ 0x0015916b
TEST EBP,EBP
JZ 0x00154bd0
MOV EAX,dword ptr [ESP + 0x12c]
MOV ESI,dword ptr [ESP + 0x18]
SUB EAX,0x7
MOV dword ptr [ESP + 0x74],EAX
TEST ESI,ESI
JZ 0x00154b80
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x24]
PUSH ESI
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,EDI
CALL 0x00032990
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x34],EDX
CALL 0x00033730
MOV dword ptr [ESP + 0x68],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x30],0x1
JZ 0x001548d0
CMP dword ptr [ESP + 0x74],0x1
JBE 0x00154999
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x14]
PUSH EDI
CALL 0x00135560
ADD ESP,0xc
PUSH dword ptr [ESP + 0x130]
PUSH EDI
PUSH dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,EDI
CALL 0x00030630
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
CMP dword ptr [ESP + 0x12c],0x1a
JA 0x001548a8
MOV ESI,dword ptr [ESP + 0x12c]
MOV EAX,dword ptr [EDI + ESI*0x4 + 0xffeeb9c0]
ADD EAX,EDI
JMP EAX
MOV EDI,dword ptr [ESP + 0xfc]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP + 0x5c]
JNZ 0x00159286
ADD ESP,0x10c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00032420
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EDI + 0x18]
TEST ESI,ESI
MOV dword ptr [ESP + 0x5c],ESI
JLE 0x001547f3
MOV ESI,dword ptr [EDI + 0x2a8]
MOV dword ptr [ESP + 0xac],EBP
MOV EBX,dword ptr [ESI + 0x34]
MOV dword ptr [ESP + 0x68],EBX
MOV EBX,dword ptr [EDI + 0x298]
LEA EDX,[EBX + EBX*0x2]
MOV dword ptr [ESP + 0x70],EBX
SHL EBX,0x3
MOV dword ptr [ESP + 0x60],EBX
MOV EBX,dword ptr [ESP + 0x10]
LEA EDI,[ESI + EDX*0x4]
XOR EDX,EDX
MOV EBP,EDX
FLD qword ptr [EBX + 0xffec6148]
NOP
MOV EBX,dword ptr [ESP + 0x68]
TEST EBX,EBX
JZ 0x00154a58
MOV EDX,dword ptr [ESI + 0x38]
FLD qword ptr [EAX + EDX*0x8]
FMUL ST1
MOV ECX,dword ptr [ESP + 0x70]
TEST ECX,ECX
JLE 0x00154970
MOV ECX,EAX
MOV EDX,ESI
MOV EBX,dword ptr [EDX]
LEA EBX,[EBX + EBX*0x2]
TEST byte ptr [ESI + EBX*0x4 + 0x4],0x2
JZ 0x00154962
FLD qword ptr [ECX]
FMUL ST1
FSTP qword ptr [ECX]
ADD EDX,0xc
ADD ECX,0x8
CMP EDX,EDI
JNZ 0x00154950
FSTP ST0
JMP 0x00154978
FSTP ST0
LEA ESI,[ESI]
ADD EAX,dword ptr [ESP + 0x60]
ADD EBP,0x1
CMP EBP,dword ptr [ESP + 0x5c]
JNZ 0x00154930
FSTP ST0
CMP dword ptr [ESP + 0x74],0x1
MOV EBP,dword ptr [ESP + 0xac]
JA 0x001547fe
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00031e80
ADD ESP,0x10
MOV ESI,dword ptr [ESP + 0x20]
TEST ESI,ESI
JLE 0x00154a03
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x5c],EBP
MOV EDX,dword ptr [ECX + 0x2a8]
MOV EDI,dword ptr [EDX + 0x8]
MOV EBX,dword ptr [EDX + 0x14]
MOV EDX,dword ptr [ECX + 0x298]
SHL EDI,0x3
SHL EBX,0x3
ADD EAX,EDI
LEA ECX,[EDX*0x8 + 0x0]
XOR EDX,EDX
MOV EBP,ECX
LEA ESI,[ESI]
MOV ECX,EAX
FLD qword ptr [EAX]
ADD EDX,0x1
SUB ECX,EDI
FLD qword ptr [ECX + EBX*0x1]
FSTP qword ptr [EAX]
ADD EAX,EBP
FSTP qword ptr [ECX + EBX*0x1]
CMP EDX,ESI
JNZ 0x001549e8
MOV EBP,dword ptr [ESP + 0x5c]
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x14]
PUSH EDI
CALL 0x00135560
ADD ESP,0xc
PUSH dword ptr [ESP + 0x130]
PUSH EDI
PUSH dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,EDI
CALL 0x00030630
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
CMP dword ptr [ESP + 0x12c],0x1a
JA 0x00154acf
MOV EAX,EDI
MOV EDI,dword ptr [ESP + 0x12c]
ADD EAX,dword ptr [EBX + EDI*0x4 + 0xffeeba2c]
JMP EAX
FLD1
JMP 0x00154944
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x00154bf0
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00032420
ADD ESP,0x10
TEST ESI,ESI
JLE 0x001548a8
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ECX + 0x2a8]
MOV EBP,dword ptr [ECX + 0x298]
MOV EDI,dword ptr [EDX + 0x8]
MOV EBX,dword ptr [EDX + 0x14]
SHL EBP,0x3
XOR EDX,EDX
SHL EDI,0x3
SHL EBX,0x3
ADD EAX,EDI
LEA ESI,[ESI]
LEA EDI,[EDI]
MOV ECX,EAX
FLD qword ptr [EAX]
ADD EDX,0x1
SUB ECX,EDI
FLD qword ptr [ECX + EBX*0x1]
FSTP qword ptr [EAX]
ADD EAX,EBP
FSTP qword ptr [ECX + EBX*0x1]
CMP EDX,ESI
JNZ 0x00154b20
JMP 0x001548a8
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x14]
ADD EAX,0x318
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xffedde4e]
PUSH EAX
LEA EAX,[EBX + 0xffeebc34]
PUSH 0xf33
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x0015477c
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x18]
PUSH ESI
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,EDI
CALL 0x00032c10
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x34],EDX
CALL 0x00032870
MOV dword ptr [ESP + 0x68],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x30],0x1
JNZ 0x001547f3
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00031e80
ADD ESP,0x10
JMP 0x001548e3
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00031c30
ADD ESP,0x10
MOV EBP,EAX
JMP 0x001547a1
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00031e80
ADD ESP,0x10
JMP 0x00154aeb
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffeebc48]
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH 0xf35
PUSH EAX
LEA EAX,[EBX + 0xffeeb340]
PUSH EAX
CALL 0x000313d0
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffeebc48]
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH 0xf34
PUSH EAX
LEA EAX,[EBX + 0xffeeb318]
PUSH EAX
CALL 0x000313d0
CALL 0x0029eab0
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffeebc48]
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH 0xf31
PUSH EAX
LEA EAX,[EBX + 0xffed1338]
PUSH EAX
CALL 0x000313d0
MOV EBX,dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffeebc48]
PUSH EAX
LEA EAX,[EBX + 0xffeeb6d8]
PUSH 0xf30
PUSH EAX
LEA EAX,[EBX + 0xffede594]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined4\nExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}\n\n" comment comment (function_definition "undefined4\nExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" type_identifier (function_declarator "ExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "double dVar9;" primitive_type identifier ;) (declaration "undefined2 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "double *pdVar12;" primitive_type (pointer_declarator "*pdVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "double *pdVar20;" primitive_type (pointer_declarator "*pdVar20" * identifier) ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar30;" type_identifier identifier ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "ulonglong local_10c;" type_identifier identifier ;) (declaration "ulonglong local_104;" type_identifier identifier ;) (declaration "undefined8 local_fc;" type_identifier identifier ;) (declaration "undefined8 uStack_f4;" type_identifier identifier ;) (declaration "byte bStack_ec;" type_identifier identifier ;) (declaration "undefined8 uStack_e4;" type_identifier identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "uint uStack_64;" type_identifier identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "double adStack_44 [4];" primitive_type (array_declarator "adStack_44 [4]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (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) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" identifier (argument_list "("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportQuantumPixels"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == (uint *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_3 == (uint *)0x0)" ( (binary_expression "param_3 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" identifier (argument_list "("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" ( (string_literal ""quantum_info != (QuantumInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (param_3[0x17] != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_3[0x17] != 0xabacadab)" ( (binary_expression "param_3[0x17] != 0xabacadab" (subscript_expression "param_3[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" identifier (argument_list "("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" ( (string_literal ""quantum_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" if (parenthesized_expression "(param_5 == (byte *)0x0)" ( (binary_expression "param_5 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" { (expression_statement "param_5 = (byte *)GetQuantumPixels(param_3);" (assignment_expression "param_5 = (byte *)GetQuantumPixels(param_3)" identifier = (cast_expression "(byte *)GetQuantumPixels(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetQuantumPixels(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) })) (expression_statement "uVar11 = param_4 - 7;" (assignment_expression "uVar11 = param_4 - 7" identifier = (binary_expression "param_4 - 7" identifier - number_literal)) ;) (if_statement "if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }" { (expression_statement "uVar30 = GetImageExtent(param_1);" (assignment_expression "uVar30 = GetImageExtent(param_1)" identifier = (call_expression "GetImageExtent(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_c4 = GetVirtualPixelQueue(param_1);" (assignment_expression "local_c4 = GetVirtualPixelQueue(param_1)" identifier = (call_expression "GetVirtualPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" if (parenthesized_expression "(param_3[0xc] == 1)" ( (binary_expression "param_3[0xc] == 1" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" { (expression_statement "pdVar12 = (double *)GetAuthenticPixelQueue(param_1);" (assignment_expression "pdVar12 = (double *)GetAuthenticPixelQueue(param_1)" identifier = (cast_expression "(double *)GetAuthenticPixelQueue(param_1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (goto_statement "goto LAB_001548e3;" goto statement_identifier ;) })) (labeled_statement "LAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;" statement_identifier : (if_statement "if (1 < uVar11) goto LAB_001547fe;" if (parenthesized_expression "(1 < uVar11)" ( (binary_expression "1 < uVar11" number_literal < identifier) )) (goto_statement "goto LAB_001547fe;" goto statement_identifier ;))) (labeled_statement "LAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" identifier = (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" { (expression_statement "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar28 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8)" identifier = (cast_expression "(undefined8 *)(iVar13 + iVar18 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + iVar18 * 8)" ( (binary_expression "iVar13 + iVar18 * 8" identifier + (binary_expression "iVar18 * 8" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);" do (compound_statement "{\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      }" { (expression_statement "uVar2 = *puVar14;" (assignment_expression "uVar2 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = puVar14[iVar27 - iVar18];" (assignment_expression "*puVar14 = puVar14[iVar27 - iVar18]" (pointer_expression "*puVar14" * identifier) = (subscript_expression "puVar14[iVar27 - iVar18]" identifier [ (binary_expression "iVar27 - iVar18" identifier - identifier) ])) ;) (expression_statement "puVar14[iVar27 - iVar18] = uVar2;" (assignment_expression "puVar14[iVar27 - iVar18] = uVar2" (subscript_expression "puVar14[iVar27 - iVar18]" identifier [ (binary_expression "iVar27 - iVar18" identifier - identifier) ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar28;" (assignment_expression "puVar14 = puVar14 + iVar28" identifier = (binary_expression "puVar14 + iVar28" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar24 != (uint)local_fc)" ( (binary_expression "iVar24 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" identifier = (call_expression "GetQuantumExtent(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" { (case_statement "case 1:\n      goto code_r0x00154c08;" case number_literal : (goto_statement "goto code_r0x00154c08;" goto statement_identifier ;)) (case_statement "case 2:\n      goto code_r0x00156619;" case number_literal : (goto_statement "goto code_r0x00156619;" goto statement_identifier ;)) (case_statement "case 3:\n      goto code_r0x001565ed;" case number_literal : (goto_statement "goto code_r0x001565ed;" goto statement_identifier ;)) (case_statement "case 4:\n      goto code_r0x00154848;" case number_literal : (goto_statement "goto code_r0x00154848;" goto statement_identifier ;)) (case_statement "case 5:\n      goto code_r0x00156375;" case number_literal : (goto_statement "goto code_r0x00156375;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 0x1a:\n      goto code_r0x001560f3;" case number_literal : (goto_statement "goto code_r0x001560f3;" goto statement_identifier ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 0x16:\n      goto code_r0x001560c7;" case number_literal : (goto_statement "goto code_r0x001560c7;" goto statement_identifier ;)) (case_statement "case 8:" case number_literal :) (case_statement "case 0x19:\n      goto code_r0x00154a5f;" case number_literal : (goto_statement "goto code_r0x00154a5f;" goto statement_identifier ;)) (case_statement "case 9:\n      goto code_r0x00155641;" case number_literal : (goto_statement "goto code_r0x00155641;" goto statement_identifier ;)) (case_statement "case 10:\n      goto code_r0x00155615;" case number_literal : (goto_statement "goto code_r0x00155615;" goto statement_identifier ;)) (case_statement "case 0xb:\n      goto code_r0x001555e9;" case number_literal : (goto_statement "goto code_r0x001555e9;" goto statement_identifier ;)) (case_statement "case 0xc:\n      goto code_r0x001555bd;" case number_literal : (goto_statement "goto code_r0x001555bd;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0x15:\n      goto code_r0x0015533d;" case number_literal : (goto_statement "goto code_r0x0015533d;" goto statement_identifier ;)) (case_statement "case 0xe:\n      goto code_r0x00155311;" case number_literal : (goto_statement "goto code_r0x00155311;" goto statement_identifier ;)) (case_statement "case 0xf:\n      goto code_r0x001552e5;" case number_literal : (goto_statement "goto code_r0x001552e5;" goto statement_identifier ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:\n      goto code_r0x00155065;" case number_literal : (goto_statement "goto code_r0x00155065;" goto statement_identifier ;)) (case_statement "case 0x11:\n      goto code_r0x00155039;" case number_literal : (goto_statement "goto code_r0x00155039;" goto statement_identifier ;)) (case_statement "case 0x12:\n      goto code_r0x0015500d;" case number_literal : (goto_statement "goto code_r0x0015500d;" goto statement_identifier ;)) (case_statement "case 0x14:\n      goto code_r0x00154e20;" case number_literal : (goto_statement "goto code_r0x00154e20;" goto statement_identifier ;)) (case_statement "case 0x17:\n      goto code_r0x00154df4;" case number_literal : (goto_statement "goto code_r0x00154df4;" goto statement_identifier ;)) })) }) (else_clause "else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" else (compound_statement "{\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" { (expression_statement "uVar30 = GetCacheViewExtent(param_2);" (assignment_expression "uVar30 = GetCacheViewExtent(param_2)" identifier = (call_expression "GetCacheViewExtent(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_c4 = GetCacheViewVirtualPixelQueue(param_2);" (assignment_expression "local_c4 = GetCacheViewVirtualPixelQueue(param_2)" identifier = (call_expression "GetCacheViewVirtualPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (param_3[0xc] != 1) goto LAB_001547f3;" if (parenthesized_expression "(param_3[0xc] != 1)" ( (binary_expression "param_3[0xc] != 1" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2)" identifier = (cast_expression "(double *)GetCacheViewAuthenticPixelQueue(param_2)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (labeled_statement "LAB_001548e3:\n    dVar3 = _DAT_0029f148;" statement_identifier : (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;)) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 1) goto LAB_001547f3;" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "piVar7 = *(int **)(param_1 + 0x2a8);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int **)(param_1 + 0x2a8)" * (cast_expression "(int **)(param_1 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = piVar7[0xd];" (assignment_expression "iVar18 = piVar7[0xd]" identifier = (subscript_expression "piVar7[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar27 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar27 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);" do (compound_statement "{\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    }" { (if_statement "if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar5 = 1.0;\n      }" { (expression_statement "dVar5 = 1.0;" (assignment_expression "dVar5 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" else (compound_statement "{\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" { (expression_statement "dVar5 = pdVar12[piVar7[0xe]] * dVar3;" (assignment_expression "dVar5 = pdVar12[piVar7[0xe]] * dVar3" identifier = (binary_expression "pdVar12[piVar7[0xe]] * dVar3" (subscript_expression "pdVar12[piVar7[0xe]]" identifier [ (subscript_expression "piVar7[0xe]" identifier [ number_literal ]) ]) * identifier)) ;) }))) (expression_statement "pdVar20 = pdVar12;" (assignment_expression "pdVar20 = pdVar12" identifier = identifier) ;) (expression_statement "piVar23 = piVar7;" (assignment_expression "piVar23 = piVar7" identifier = identifier) ;) (if_statement "if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" if (parenthesized_expression "(0 < iVar27)" ( (binary_expression "0 < iVar27" number_literal < identifier) )) (compound_statement "{\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" { (do_statement "do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);" do (compound_statement "{\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        }" { (if_statement "if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }" if (parenthesized_expression "((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2)" ( (binary_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2" (pointer_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1)" * (cast_expression "(byte *)(piVar7 + *piVar23 * 3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + *piVar23 * 3 + 1)" ( (binary_expression "piVar7 + *piVar23 * 3 + 1" (binary_expression "piVar7 + *piVar23 * 3" identifier + (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" * identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            *pdVar20 = *pdVar20 * dVar5;\n          }" { (expression_statement "*pdVar20 = *pdVar20 * dVar5;" (assignment_expression "*pdVar20 = *pdVar20 * dVar5" (pointer_expression "*pdVar20" * identifier) = (binary_expression "*pdVar20 * dVar5" (pointer_expression "*pdVar20" * identifier) * identifier)) ;) })) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" identifier = (binary_expression "piVar23 + 3" identifier + number_literal)) ;) (expression_statement "pdVar20 = pdVar20 + 1;" (assignment_expression "pdVar20 = pdVar20 + 1" identifier = (binary_expression "pdVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar7 + iVar27 * 3)" ( (binary_expression "piVar23 != piVar7 + iVar27 * 3" identifier != (binary_expression "piVar7 + iVar27 * 3" identifier + (binary_expression "iVar27 * 3" identifier * number_literal))) )) ;) })) (expression_statement "pdVar12 = pdVar12 + iVar27;" (assignment_expression "pdVar12 = pdVar12 + iVar27" identifier = (binary_expression "pdVar12 + iVar27" identifier + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != iVar13)" ( (binary_expression "iVar28 != iVar13" identifier != identifier) )) ;) (if_statement "if (uVar11 < 2) goto LAB_00154999;" if (parenthesized_expression "(uVar11 < 2)" ( (binary_expression "uVar11 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00154999;" goto statement_identifier ;)) (labeled_statement "LAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" identifier = (call_expression "GetQuantumExtent(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" { (case_statement "default:\n      goto LAB_001548a8;" default : (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154c08:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "fVar1 = DAT_0029f710;" (assignment_expression "fVar1 = DAT_0029f710" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" { (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xfb;" (assignment_expression "uVar11 = 0xfb" identifier = number_literal) ;) (labeled_statement "code_r0x00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" statement_identifier : comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" { (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xfc;" (assignment_expression "uVar11 = 0xfc" identifier = number_literal) ;) (labeled_statement "code_r0x00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" statement_identifier : comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = 1.0;\n              }" { (expression_statement "fVar1 = 1.0;" (assignment_expression "fVar1 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" identifier = (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) )))) ;) }))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (labeled_statement "code_r0x00157b5e:\n                iVar18 = -1;" statement_identifier : (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;)) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" else (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" else (compound_statement "{\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" { (if_statement "if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x00157b5e;" goto statement_identifier ;)) (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" if (parenthesized_expression "((double)DAT_002a7ff4 <= dVar3)" ( (binary_expression "(double)DAT_002a7ff4 <= dVar3" (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    bVar25 = 0xff;\n                  }" { (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" else (compound_statement "{\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00157d50:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x00154c68;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00154c68;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (expression_statement "fVar8 = fVar1;" (assignment_expression "fVar8 = fVar1" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" { (expression_statement "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) })) (expression_statement "fVar8 = fVar8 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar8 = fVar8 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar8 * (float)dVar3 + (float)dVar5" (binary_expression "fVar8 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar8 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar8 >> 8)" identifier = (call_expression "(byte)((uint)fVar8 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 8)" ( (binary_expression "(uint)fVar8 >> 8" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar8 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar8 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar8 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 0x18)" ( (binary_expression "(uint)fVar8 >> 0x18" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar8 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar8 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar8 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 0x10)" ( (binary_expression "(uint)fVar8 >> 0x10" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar8,0);" (assignment_expression "*param_5 = SUB41(fVar8,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar8,0)" identifier (argument_list "(fVar8,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar8,0);" (assignment_expression "param_5[3] = SUB41(fVar8,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar8,0)" identifier (argument_list "(fVar8,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (labeled_statement "code_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;" statement_identifier : (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;)) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) goto code_r0x00157c2d;" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (goto_statement "goto code_r0x00157c2d;" goto statement_identifier ;)) (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x00157d50;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00157d50;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "dVar6 = (double)DAT_0029f710;" (assignment_expression "dVar6 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (expression_statement "dVar9 = dVar6;" (assignment_expression "dVar9 = dVar6" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" { (expression_statement "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) })) (expression_statement "dVar9 = dVar9 * dVar3 + dVar5;" (assignment_expression "dVar9 = dVar9 * dVar3 + dVar5" identifier = (binary_expression "dVar9 * dVar3 + dVar5" (binary_expression "dVar9 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar9 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar9 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x28)" ( (binary_expression "(ulonglong)dVar9 >> 0x28" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar9 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar9 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 8)" ( (binary_expression "(ulonglong)dVar9 >> 8" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar9 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar9 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x38)" ( (binary_expression "(ulonglong)dVar9 >> 0x38" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar9 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar9 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x20)" ( (binary_expression "(ulonglong)dVar9 >> 0x20" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x18)" ( (binary_expression "(ulonglong)dVar9 >> 0x18" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x30)" ( (binary_expression "(ulonglong)dVar9 >> 0x30" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x10)" ( (binary_expression "(ulonglong)dVar9 >> 0x10" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" { (expression_statement "*param_5 = SUB81(dVar9,0);" (assignment_expression "*param_5 = SUB81(dVar9,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar9,0)" identifier (argument_list "(dVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar9,0);" (assignment_expression "param_5[7] = SUB81(dVar9,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar9,0)" identifier (argument_list "(dVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00154c68:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" { (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = number_literal) ;) (do_statement "do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );" do (compound_statement "{\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "dVar3 = (double)DAT_0029f710;" (assignment_expression "dVar3 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "code_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" statement_identifier : (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;)) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) }) (else_clause "else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" else (compound_statement "{\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) goto code_r0x001566ad;" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (goto_statement "goto code_r0x001566ad;" goto statement_identifier ;)) }))) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" ( (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00146770(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00146770(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0014fd90(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014fd90(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013fa50(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013fa50(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00156375:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 2)" ( (binary_expression "*(int *)(param_1 + 4) != 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" { (expression_statement "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" identifier (argument_list "(param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportBlackQuantum"" " string_content ") , number_literal , number_literal , (string_literal ""ColorSeparatedImageRequired"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = 0.0;\n              }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" identifier = (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) )))) ;) }))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "0.0 < dVar3" number_literal < identifier)) ))) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00158120:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x001563c0;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x001563c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" else (compound_statement "{\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" { (expression_statement "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x00158120;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00158120;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" else (compound_statement "{\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" identifier = (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x001563c0:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" { (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "0.0 < dVar3" number_literal < identifier)) ))) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" ( (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x001560f3:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x4e6;" (assignment_expression "uVar11 = 0x4e6" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x4e7;" (assignment_expression "uVar11 = 0x4e7" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x00157c43:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x00156153:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x00157c43;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00157c43;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x00156153;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x00156153;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" statement_identifier : (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x559;" (assignment_expression "uVar11 = 0x559" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) }))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x55a;" (assignment_expression "uVar11 = 0x55a" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(uVar11 == 10)" ( (binary_expression "uVar11 == 10" identifier == number_literal) )) (compound_statement "{\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }" { (if_statement "if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" if (parenthesized_expression "((param_3[0xb] == 0) && (0 < (int)(uint)local_fc))" ( (binary_expression "(param_3[0xb] == 0) && (0 < (int)(uint)local_fc)" (parenthesized_expression "(param_3[0xb] == 0)" ( (binary_expression "param_3[0xb] == 0" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) (compound_statement "{\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);" do (compound_statement "{\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (do_statement "do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);" do (compound_statement "{\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            }" { (expression_statement "uVar11 = (uint)(iVar13 + iVar27) % 3;" (assignment_expression "uVar11 = (uint)(iVar13 + iVar27) % 3" identifier = (binary_expression "(uint)(iVar13 + iVar27) % 3" (call_expression "(uint)(iVar13 + iVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + iVar27)" ( (binary_expression "iVar13 + iVar27" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" identifier = (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x14) * 8" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }) (else_clause "else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" else (if_statement "if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" if (parenthesized_expression "(uVar11 == 2)" ( (binary_expression "uVar11 == 2" identifier == number_literal) )) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" identifier = (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x20) * 8" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }) (else_clause "else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" else (compound_statement "{\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 8) * 8" identifier + (binary_expression "*(int *)(iVar18 + 8) * 8" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }))))) (expression_statement "local_10c = (ulonglong)uStack_64;" (assignment_expression "local_10c = (ulonglong)uStack_64" identifier = (cast_expression "(ulonglong)uStack_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "adStack_44[iVar27] = (double)local_10c;" (assignment_expression "adStack_44[iVar27] = (double)local_10c" (subscript_expression "adStack_44[iVar27]" identifier [ identifier ]) = (cast_expression "(double)local_10c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 != 4)" ( (binary_expression "iVar27 != 4" identifier != number_literal) )) ;) (expression_statement "iVar13 = iVar13 + 4;" (assignment_expression "iVar13 = iVar13 + 4" identifier = (binary_expression "iVar13 + 4" identifier + number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[0])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[0])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[0])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar29 = uStack_64 << 0xc;" (assignment_expression "uVar29 = uStack_64 << 0xc" identifier = (binary_expression "uStack_64 << 0xc" identifier << number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[2])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[2])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[2])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar11 = uStack_64 * 4;" (assignment_expression "uVar11 = uStack_64 * 4" identifier = (binary_expression "uStack_64 * 4" identifier * number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[1])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[1])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[1])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[1])" identifier (argument_list "(adStack_44[1])" ( (subscript_expression "adStack_44[1]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;" (assignment_expression "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11" identifier = (binary_expression "uStack_64 << 0x16 | uVar29 | uVar11" (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" identifier << number_literal) | identifier) | identifier)) ;) (expression_statement "bVar19 = (byte)(uVar26 >> 0x10);" (assignment_expression "bVar19 = (byte)(uVar26 >> 0x10)" identifier = (call_expression "(byte)(uVar26 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 0x10)" ( (binary_expression "uVar26 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)uVar11;" (assignment_expression "bVar25 = (byte)uVar11" identifier = (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar26 >> 0x18);" (assignment_expression "local_10c._0_1_ = (byte)(uVar26 >> 0x18)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar26 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 0x18)" ( (binary_expression "uVar26 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)(uVar26 >> 8);" (assignment_expression "local_104._0_1_ = (byte)(uVar26 >> 8)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar26 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 8)" ( (binary_expression "uVar26 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_10c;" (assignment_expression "param_5[3] = (byte)local_10c" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" else (compound_statement "{\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" { (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = (byte)local_10c;" (assignment_expression "*param_5 = (byte)local_10c" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = bVar25;" (assignment_expression "param_5[3] = bVar25" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)local_104;" (assignment_expression "param_5[2] = (byte)local_104" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar29 = uVar29 | uVar11;" (assignment_expression "uVar29 = uVar29 | uVar11" identifier = (binary_expression "uVar29 | uVar11" identifier | identifier)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[3])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[3])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[3])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar11 = uStack_64 << 0x16 | uVar29;" (assignment_expression "uVar11 = uStack_64 << 0x16 | uVar29" identifier = (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" identifier << number_literal) | identifier)) ;) (expression_statement "bVar19 = (byte)(uVar11 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar11 >> 0x18)" identifier = (call_expression "(byte)(uVar11 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)(uVar11 >> 0x10);" (assignment_expression "bVar21 = (byte)(uVar11 >> 0x10)" identifier = (call_expression "(byte)(uVar11 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar29 >> 8);" (assignment_expression "local_10c._0_1_ = (byte)(uVar29 >> 8)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar29 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 >> 8)" ( (binary_expression "uVar29 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }" { (expression_statement "param_5[4] = bVar25;" (assignment_expression "param_5[4] = bVar25" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar19;" (assignment_expression "param_5[7] = bVar19" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = (byte)local_10c;" (assignment_expression "param_5[5] = (byte)local_10c" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar21;" (assignment_expression "param_5[6] = bVar21" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" else (compound_statement "{\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" { (expression_statement "param_5[4] = bVar19;" (assignment_expression "param_5[4] = bVar19" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar21;" (assignment_expression "param_5[5] = bVar21" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar25;" (assignment_expression "param_5[7] = bVar25" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[6] = (byte)local_10c;" (assignment_expression "param_5[6] = (byte)local_10c" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;" (assignment_expression "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" identifier = (binary_expression "local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" identifier + (binary_expression "(*(int *)(param_1 + 0x298) + iVar18) * 8" (parenthesized_expression "(*(int *)(param_1 + 0x298) + iVar18)" ( (binary_expression "*(int *)(param_1 + 0x298) + iVar18" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + identifier) )) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4)" ( (binary_expression "iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4" identifier != (binary_expression "((uint)local_fc - 1 >> 1) * 4 + 4" (binary_expression "((uint)local_fc - 1 >> 1) * 4" (parenthesized_expression "((uint)local_fc - 1 >> 1)" ( (binary_expression "(uint)local_fc - 1 >> 1" (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) >> number_literal) )) * number_literal) + number_literal)) )) ;) })) }) (else_clause "else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" else (if_statement "if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" { (expression_statement "uVar29 = (uint)local_fc - 1;" (assignment_expression "uVar29 = (uint)local_fc - 1" identifier = (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );" do (compound_statement "{\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (do_statement "do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);" do (compound_statement "{\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "uVar26 = (uint)(local_a8 + iVar18) % 3;" (assignment_expression "uVar26 = (uint)(local_a8 + iVar18) % 3" identifier = (binary_expression "(uint)(local_a8 + iVar18) % 3" (call_expression "(uint)(local_a8 + iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a8 + iVar18)" ( (binary_expression "local_a8 + iVar18" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }) (else_clause "else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" else (if_statement "if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" if (parenthesized_expression "(uVar26 == 2)" ( (binary_expression "uVar26 == 2" identifier == number_literal) )) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }) (else_clause "else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" else (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }))))) (expression_statement "local_104 = (ulonglong)uStack_64;" (assignment_expression "local_104 = (ulonglong)uStack_64" identifier = (cast_expression "(ulonglong)uStack_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "adStack_44[iVar18] = (double)local_104;" (assignment_expression "adStack_44[iVar18] = (double)local_104" (subscript_expression "adStack_44[iVar18]" identifier [ identifier ]) = (cast_expression "(double)local_104" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 4)" ( (binary_expression "iVar18 != 4" identifier != number_literal) )) ;) (expression_statement "local_a8 = local_a8 + 4;" (assignment_expression "local_a8 = local_a8 + 4" identifier = (binary_expression "local_a8 + 4" identifier + number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "iStack_b8 = 0;" (assignment_expression "iStack_b8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar11;\n            }" { (expression_statement "uVar26 = uVar11;" (assignment_expression "uVar26 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "local_bc = uVar16 - 1;" (assignment_expression "local_bc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" if (parenthesized_expression "(0.0 < adStack_44[1])" ( (binary_expression "0.0 < adStack_44[1]" number_literal < (subscript_expression "adStack_44[1]" identifier [ number_literal ])) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[1])" ( (binary_expression "(double)fVar1 * adStack_44[1]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[1]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                local_b4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (if_statement "if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155924;" if (parenthesized_expression "(!NAN(adStack_44[0]))" ( (unary_expression "!NAN(adStack_44[0])" ! (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155924;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x0015590b;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x0015590b;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x0015590b:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[0]))" ( (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155924:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[0])" ( (binary_expression "0.0 < adStack_44[0]" number_literal < (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" ( (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155aac;" if (parenthesized_expression "(!NAN(adStack_44[2]))" ( (unary_expression "!NAN(adStack_44[2])" ! (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155aac;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155a93;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155a93;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155a93:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[2]))" ( (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155aac:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[2])" ( (binary_expression "0.0 < adStack_44[2]" number_literal < (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" ( (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }" { (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (!NAN(adStack_44[3])) goto code_r0x00155c3d;" if (parenthesized_expression "(!NAN(adStack_44[3]))" ( (unary_expression "!NAN(adStack_44[3])" ! (call_expression "NAN(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155c3d;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155c13;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155c13;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);" statement_identifier : (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[3]))" ( (call_expression "NAN(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155c3d:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[3])" ( (binary_expression "0.0 < adStack_44[3]" number_literal < (subscript_expression "adStack_44[3]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[3])" ( (binary_expression "(double)fVar1 * adStack_44[3]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[3]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155dc3;" if (parenthesized_expression "(!NAN(adStack_44[0]))" ( (unary_expression "!NAN(adStack_44[0])" ! (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155dc3;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155db1;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155db1;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155db1:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[0]))" ( (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155dc3:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[0])" ( (binary_expression "0.0 < adStack_44[0]" number_literal < (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" ( (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }" { (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155f45;" if (parenthesized_expression "(!NAN(adStack_44[2]))" ( (unary_expression "!NAN(adStack_44[2])" ! (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155f45;" goto statement_identifier ;)) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155f33;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155f33;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155f33:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[2]))" ( (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_fc = 0;\n            }" { (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155f45:\n              local_fc = 0;" statement_identifier : (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[2])" ( (binary_expression "0.0 < adStack_44[2]" number_literal < (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_fc = -1;" (assignment_expression "local_fc = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" ( (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_fc = (longlong)ROUND(dVar3);" (assignment_expression "local_fc = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar26;" (assignment_expression "uVar16 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar16 = uVar11;\n            }" { (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar11 - uVar16;" (assignment_expression "uVar17 = uVar11 - uVar16" identifier = (binary_expression "uVar11 - uVar16" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }" if (parenthesized_expression "(-1 < (int)uVar17)" ( (binary_expression "-1 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar17;\n            }" { (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar16;" (assignment_expression "uVar26 = uVar26 - uVar16" identifier = (binary_expression "uVar26 - uVar16" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_fc >> bVar25" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_fc._4_4_ << 0x20 - bVar25" (field_expression "local_fc._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_fc._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;" (assignment_expression "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" identifier = (binary_expression "local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" identifier + (binary_expression "(local_74 + *(int *)(param_1 + 0x298)) * 8" (parenthesized_expression "(local_74 + *(int *)(param_1 + 0x298))" ( (binary_expression "local_74 + *(int *)(param_1 + 0x298)" identifier + (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) )) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (if_statement "if (local_a8 == (uVar29 >> 1) * 4 + 4) break;" if (parenthesized_expression "(local_a8 == (uVar29 >> 1) * 4 + 4)" ( (binary_expression "local_a8 == (uVar29 >> 1) * 4 + 4" identifier == (binary_expression "(uVar29 >> 1) * 4 + 4" (binary_expression "(uVar29 >> 1) * 4" (parenthesized_expression "(uVar29 >> 1)" ( (binary_expression "uVar29 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00139c20(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00139c20(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013bd70(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013bd70(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00136f80(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136f80(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x0015533d:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xbaa;" (assignment_expression "uVar11 = 0xbaa" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xbab;" (assignment_expression "uVar11 = 0xbab" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x0015742f:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x0015539d:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x0015742f;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015742f;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x0015539d;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x0015539d;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00152ff0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00152ff0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013def0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013def0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x00155065:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x96d;" (assignment_expression "uVar11 = 0x96d" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x96e;" (assignment_expression "uVar11 = 0x96e" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x0015755d:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x001550c5:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x0015755d;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015755d;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x001550c5;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x001550c5;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00138a40(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00138a40(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00136440(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136440(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154e20:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xb41;" (assignment_expression "uVar11 = 0xb41" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xb42;" (assignment_expression "uVar11 = 0xb42" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" { (expression_statement "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" identifier = (binary_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" (parenthesized_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) )) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" { (if_statement "if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" else (compound_statement "{\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" { (expression_statement "iVar18 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(int)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) })) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" { (expression_statement "fVar1 = fVar1 / DAT_002a7ff0;" (assignment_expression "fVar1 = fVar1 / DAT_002a7ff0" identifier = (binary_expression "fVar1 / DAT_002a7ff0" identifier / identifier)) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) )))))) ;) })) })) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x0015768b:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x00154e80;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00154e80;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" { (expression_statement "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) ;) }) (else_clause "else {\n                  fVar1 = 0.0;\n                }" else (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" ( (comma_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x0015768b;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015768b;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" { (expression_statement "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) }) (else_clause "else {\n                dVar6 = 0.0;\n              }" else (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" identifier = (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_e4;" (assignment_expression "param_5[2] = (byte)uStack_e4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)uStack_f4;" (assignment_expression "param_5[3] = (byte)uStack_f4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_fc;" (assignment_expression "param_5[6] = (byte)local_fc" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)uStack_f4;" (assignment_expression "param_5[4] = (byte)uStack_f4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_fc;" (assignment_expression "param_5[1] = (byte)local_fc" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_e4;" (assignment_expression "param_5[5] = (byte)uStack_e4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00154e80:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" { (expression_statement "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar8 = fVar8 + DAT_0029f714;\n            }" { (expression_statement "fVar8 = fVar8 + DAT_0029f714;" (assignment_expression "fVar8 = fVar8 + DAT_0029f714" identifier = (binary_expression "fVar8 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar8 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar8 * fVar1) / DAT_0029f710" identifier = (binary_expression "(fVar8 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar8 * fVar1)" ( (binary_expression "fVar8 * fVar1" identifier * identifier) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" if (parenthesized_expression "(fVar1 < DAT_0029f714)" ( (binary_expression "fVar1 < DAT_0029f714" identifier < identifier) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f124;" (assignment_expression "fVar1 = fVar1 + DAT_0029f124" identifier = (binary_expression "fVar1 + DAT_0029f124" identifier + identifier)) ;) (if_statement "if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }" { (expression_statement "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (binary_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20" (cast_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(fVar1);" (assignment_expression "uStack_f4 = (longlong)ROUND(fVar1)" identifier = (cast_expression "(longlong)ROUND(fVar1)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1)" identifier (argument_list "(fVar1)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar13 == (uint)local_fc) break;" if (parenthesized_expression "(iVar13 == (uint)local_fc)" ( (binary_expression "iVar13 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;" case number_literal : (labeled_statement "code_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00149950(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00149950(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0014cb30(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014cb30(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);" case number_literal : (labeled_statement "code_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_001430e0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_001430e0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) })) (if_statement "if (1 < uVar11) goto LAB_001548a8;" if (parenthesized_expression "(1 < uVar11)" ( (binary_expression "1 < uVar11" number_literal < identifier) )) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) }))) (if_statement "if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }" { (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" identifier = (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" else (compound_statement "{\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" { (expression_statement "iVar13 = GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "iVar13 = GetCacheViewAuthenticPixelQueue(param_2)" identifier = (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" { (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8)" identifier = (cast_expression "(undefined8 *)(iVar13 + iVar27 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + iVar27 * 8)" ( (binary_expression "iVar13 + iVar27 * 8" identifier + (binary_expression "iVar27 * 8" identifier * number_literal)) )))) ;) (do_statement "do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);" do (compound_statement "{\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    }" { (expression_statement "uVar30 = *puVar14;" (assignment_expression "uVar30 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = puVar14[iVar28 - iVar27];" (assignment_expression "*puVar14 = puVar14[iVar28 - iVar27]" (pointer_expression "*puVar14" * identifier) = (subscript_expression "puVar14[iVar28 - iVar27]" identifier [ (binary_expression "iVar28 - iVar27" identifier - identifier) ])) ;) (expression_statement "puVar14[iVar28 - iVar27] = uVar30;" (assignment_expression "puVar14[iVar28 - iVar27] = uVar30" (subscript_expression "puVar14[iVar28 - iVar27]" identifier [ (binary_expression "iVar28 - iVar27" identifier - identifier) ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar18;" (assignment_expression "puVar14 = puVar14 + iVar18" identifier = (binary_expression "puVar14 + iVar18" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar24 != (uint)local_fc)" ( (binary_expression "iVar24 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (labeled_statement "LAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\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    return local_c0;\n  }" { (return_statement "return local_c0;" return identifier ;) }))) comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nsize_t ExportQuantumPixels(Image *image,CacheView *image_view,QuantumInfo *quantum_info,\n                          QuantumType quantum_type,uchar *pixels,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  Quantum QVar2;\n  longlong lVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  PixelTrait PVar9;\n  size_t sVar10;\n  size_t sVar11;\n  EndianType EVar12;\n  float fVar13;\n  double dVar14;\n  ushort uVar15;\n  uint uVar16;\n  double *pdVar17;\n  Quantum *pQVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  byte bVar23;\n  double *pdVar24;\n  byte bVar25;\n  byte bVar26;\n  PixelChannelMap *pPVar27;\n  int iVar28;\n  byte bVar29;\n  uint uVar30;\n  size_t sVar31;\n  uint uVar32;\n  int iVar33;\n  int in_GS_OFFSET;\n  char *pcVar34;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 local_f4;\n  byte local_ec;\n  undefined8 local_e4;\n  int local_dc;\n  int iStack_d8;\n  int local_d4;\n  int local_cc;\n  int iStack_c8;\n  Quantum *local_c4;\n  size_t local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  size_t local_74;\n  uint local_64;\n  int iStack_60;\n  Quantum cbcr [4];\n  \n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);\n  }\n  if (quantum_info == (QuantumInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (quantum_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (pixels == (uchar *)0x0) {\n    pixels = GetQuantumPixels(quantum_info);\n  }\n  uVar16 = quantum_type - CbYCrAQuantum;\n  if (image_view == (CacheView *)0x0) {\n    local_fc = GetImageExtent(image);\n    local_c4 = GetVirtualPixelQueue(image);\n    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;\nLAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);\n    if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }\n  }\n  else {\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }\n  if (image_view == (CacheView *)0x0) {\n    pQVar18 = GetAuthenticPixelQueue(image);\n  }\n  else {\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }\n  if (0 < (int)(uint)local_fc) {\n    sVar11 = image->number_channels;\n    iVar33 = image->channel_map->offset;\n    iVar22 = image->channel_map[1].offset;\n    iVar28 = 0;\n    pQVar18 = pQVar18 + iVar33;\n    do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);\n  }\n_L4734:\n  if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "size_t ExportQuantumPixels(Image *image,CacheView *image_view,QuantumInfo *quantum_info,\n                          QuantumType quantum_type,uchar *pixels,ExceptionInfo *exception)\n\n{\n  float fVar1;\n  Quantum QVar2;\n  longlong lVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  PixelTrait PVar9;\n  size_t sVar10;\n  size_t sVar11;\n  EndianType EVar12;\n  float fVar13;\n  double dVar14;\n  ushort uVar15;\n  uint uVar16;\n  double *pdVar17;\n  Quantum *pQVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  byte bVar23;\n  double *pdVar24;\n  byte bVar25;\n  byte bVar26;\n  PixelChannelMap *pPVar27;\n  int iVar28;\n  byte bVar29;\n  uint uVar30;\n  size_t sVar31;\n  uint uVar32;\n  int iVar33;\n  int in_GS_OFFSET;\n  char *pcVar34;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 local_f4;\n  byte local_ec;\n  undefined8 local_e4;\n  int local_dc;\n  int iStack_d8;\n  int local_d4;\n  int local_cc;\n  int iStack_c8;\n  Quantum *local_c4;\n  size_t local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  size_t local_74;\n  uint local_64;\n  int iStack_60;\n  Quantum cbcr [4];\n  \n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);\n  }\n  if (quantum_info == (QuantumInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (quantum_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (pixels == (uchar *)0x0) {\n    pixels = GetQuantumPixels(quantum_info);\n  }\n  uVar16 = quantum_type - CbYCrAQuantum;\n  if (image_view == (CacheView *)0x0) {\n    local_fc = GetImageExtent(image);\n    local_c4 = GetVirtualPixelQueue(image);\n    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;\nLAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);\n    if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }\n  }\n  else {\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }\n  if (image_view == (CacheView *)0x0) {\n    pQVar18 = GetAuthenticPixelQueue(image);\n  }\n  else {\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }\n  if (0 < (int)(uint)local_fc) {\n    sVar11 = image->number_channels;\n    iVar33 = image->channel_map->offset;\n    iVar22 = image->channel_map[1].offset;\n    iVar28 = 0;\n    pQVar18 = pQVar18 + iVar33;\n    do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);\n  }\n_L4734:\n  if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "ExportQuantumPixels(Image *image,CacheView *image_view,QuantumInfo *quantum_info,\n                          QuantumType quantum_type,uchar *pixels,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,CacheView *image_view,QuantumInfo *quantum_info,\n                          QuantumType quantum_type,uchar *pixels,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "CacheView *image_view" type_identifier (pointer_declarator "*image_view" * identifier)) , (parameter_declaration "QuantumInfo *quantum_info" type_identifier (pointer_declarator "*quantum_info" * identifier)) , (parameter_declaration "QuantumType quantum_type" type_identifier identifier) , (parameter_declaration "uchar *pixels" type_identifier (pointer_declarator "*pixels" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  Quantum QVar2;\n  longlong lVar3;\n  double dVar4;\n  double dVar5;\n  double dVar6;\n  int iVar7;\n  PixelChannelMap *pPVar8;\n  PixelTrait PVar9;\n  size_t sVar10;\n  size_t sVar11;\n  EndianType EVar12;\n  float fVar13;\n  double dVar14;\n  ushort uVar15;\n  uint uVar16;\n  double *pdVar17;\n  Quantum *pQVar18;\n  uint uVar19;\n  uint uVar20;\n  uint uVar21;\n  int iVar22;\n  byte bVar23;\n  double *pdVar24;\n  byte bVar25;\n  byte bVar26;\n  PixelChannelMap *pPVar27;\n  int iVar28;\n  byte bVar29;\n  uint uVar30;\n  size_t sVar31;\n  uint uVar32;\n  int iVar33;\n  int in_GS_OFFSET;\n  char *pcVar34;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 local_f4;\n  byte local_ec;\n  undefined8 local_e4;\n  int local_dc;\n  int iStack_d8;\n  int local_d4;\n  int local_cc;\n  int iStack_c8;\n  Quantum *local_c4;\n  size_t local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  size_t local_74;\n  uint local_64;\n  int iStack_60;\n  Quantum cbcr [4];\n  \n  iVar7 = *(int *)(in_GS_OFFSET + 0x14);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);\n  }\n  if (quantum_info == (QuantumInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (quantum_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (pixels == (uchar *)0x0) {\n    pixels = GetQuantumPixels(quantum_info);\n  }\n  uVar16 = quantum_type - CbYCrAQuantum;\n  if (image_view == (CacheView *)0x0) {\n    local_fc = GetImageExtent(image);\n    local_c4 = GetVirtualPixelQueue(image);\n    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;\nLAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);\n    if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }\n  }\n  else {\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }\n  if (image_view == (CacheView *)0x0) {\n    pQVar18 = GetAuthenticPixelQueue(image);\n  }\n  else {\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }\n  if (0 < (int)(uint)local_fc) {\n    sVar11 = image->number_channels;\n    iVar33 = image->channel_map->offset;\n    iVar22 = image->channel_map[1].offset;\n    iVar28 = 0;\n    pQVar18 = pQVar18 + iVar33;\n    do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);\n  }\n_L4734:\n  if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "Quantum QVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "PixelTrait PVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "EndianType EVar12;" type_identifier identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "double *pdVar17;" primitive_type (pointer_declarator "*pdVar17" * identifier) ;) (declaration "Quantum *pQVar18;" type_identifier (pointer_declarator "*pQVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "double *pdVar24;" primitive_type (pointer_declarator "*pdVar24" * identifier) ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "byte bVar26;" type_identifier identifier ;) (declaration "PixelChannelMap *pPVar27;" type_identifier (pointer_declarator "*pPVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "size_t sVar31;" primitive_type identifier ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *pcVar34;" primitive_type (pointer_declarator "*pcVar34" * identifier) ;) (declaration "ulonglong local_10c;" type_identifier identifier ;) (declaration "ulonglong local_104;" type_identifier identifier ;) (declaration "undefined8 local_fc;" type_identifier identifier ;) (declaration "undefined8 local_f4;" type_identifier identifier ;) (declaration "byte local_ec;" type_identifier identifier ;) (declaration "undefined8 local_e4;" type_identifier identifier ;) (declaration "int local_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "Quantum *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "size_t local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "size_t local_74;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "Quantum cbcr [4];" type_identifier (array_declarator "cbcr [4]" 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) ))))) ;) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\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                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" identifier (argument_list "("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",\n                   image->filename)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportQuantumPixels"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (quantum_info == (QuantumInfo *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(quantum_info == (QuantumInfo *)0x0)" ( (binary_expression "quantum_info == (QuantumInfo *)0x0" identifier == (cast_expression "(QuantumInfo *)0x0" ( (type_descriptor "QuantumInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" identifier (argument_list "("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" ( (string_literal ""quantum_info != (QuantumInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (quantum_info->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" if (parenthesized_expression "(quantum_info->signature != 0xabacadab)" ( (binary_expression "quantum_info->signature != 0xabacadab" (field_expression "quantum_info->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" { comment (expression_statement "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" identifier (argument_list "("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" ( (string_literal ""quantum_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (pixels == (uchar *)0x0) {\n    pixels = GetQuantumPixels(quantum_info);\n  }" if (parenthesized_expression "(pixels == (uchar *)0x0)" ( (binary_expression "pixels == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pixels = GetQuantumPixels(quantum_info);\n  }" { (expression_statement "pixels = GetQuantumPixels(quantum_info);" (assignment_expression "pixels = GetQuantumPixels(quantum_info)" identifier = (call_expression "GetQuantumPixels(quantum_info)" identifier (argument_list "(quantum_info)" ( identifier )))) ;) })) (expression_statement "uVar16 = quantum_type - CbYCrAQuantum;" (assignment_expression "uVar16 = quantum_type - CbYCrAQuantum" identifier = (binary_expression "quantum_type - CbYCrAQuantum" identifier - identifier)) ;) (if_statement "if (image_view == (CacheView *)0x0) {\n    local_fc = GetImageExtent(image);\n    local_c4 = GetVirtualPixelQueue(image);\n    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;\nLAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);\n    if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }\n  }\n  else {\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }" if (parenthesized_expression "(image_view == (CacheView *)0x0)" ( (binary_expression "image_view == (CacheView *)0x0" identifier == (cast_expression "(CacheView *)0x0" ( (type_descriptor "CacheView *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_fc = GetImageExtent(image);\n    local_c4 = GetVirtualPixelQueue(image);\n    if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;\nLAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);\n    if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }\n  }" { (expression_statement "local_fc = GetImageExtent(image);" (assignment_expression "local_fc = GetImageExtent(image)" identifier = (call_expression "GetImageExtent(image)" identifier (argument_list "(image)" ( identifier )))) ;) (expression_statement "local_c4 = GetVirtualPixelQueue(image);" (assignment_expression "local_c4 = GetVirtualPixelQueue(image)" identifier = (call_expression "GetVirtualPixelQueue(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (quantum_info->alpha_type == AssociatedQuantumAlpha) {\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }" if (parenthesized_expression "(quantum_info->alpha_type == AssociatedQuantumAlpha)" ( (binary_expression "quantum_info->alpha_type == AssociatedQuantumAlpha" (field_expression "quantum_info->alpha_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      pdVar17 = GetAuthenticPixelQueue(image);\n      goto LAB_001548e3;\n    }" { (expression_statement "pdVar17 = GetAuthenticPixelQueue(image);" (assignment_expression "pdVar17 = GetAuthenticPixelQueue(image)" identifier = (call_expression "GetAuthenticPixelQueue(image)" identifier (argument_list "(image)" ( identifier )))) ;) (goto_statement "goto LAB_001548e3;" goto statement_identifier ;) })) (labeled_statement "LAB_001547f3:\n    if (1 < uVar16) goto LAB_001547fe;" statement_identifier : (if_statement "if (1 < uVar16) goto LAB_001547fe;" if (parenthesized_expression "(1 < uVar16)" ( (binary_expression "1 < uVar16" number_literal < identifier) )) (goto_statement "goto LAB_001547fe;" goto statement_identifier ;))) (labeled_statement "LAB_00154999:\n    pQVar18 = GetAuthenticPixelQueue(image);" statement_identifier : (expression_statement "pQVar18 = GetAuthenticPixelQueue(image);" (assignment_expression "pQVar18 = GetAuthenticPixelQueue(image)" identifier = (call_expression "GetAuthenticPixelQueue(image)" identifier (argument_list "(image)" ( identifier )))) ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n      iVar33 = image->channel_map->offset;\n      iVar22 = image->channel_map[1].offset;\n      sVar11 = image->number_channels;\n      iVar28 = 0;\n      pQVar18 = pQVar18 + iVar33;\n      do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);\n    }" { (expression_statement "iVar33 = image->channel_map->offset;" (assignment_expression "iVar33 = image->channel_map->offset" identifier = (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "iVar22 = image->channel_map[1].offset;" (assignment_expression "iVar22 = image->channel_map[1].offset" identifier = (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "pQVar18 = pQVar18 + iVar33;" (assignment_expression "pQVar18 = pQVar18 + iVar33" identifier = (binary_expression "pQVar18 + iVar33" identifier + identifier)) ;) (do_statement "do {\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      } while (iVar28 != (uint)local_fc);" do (compound_statement "{\n        QVar2 = *pQVar18;\n        iVar28 = iVar28 + 1;\n        *pQVar18 = pQVar18[iVar22 - iVar33];\n        pQVar18[iVar22 - iVar33] = QVar2;\n        pQVar18 = pQVar18 + sVar11;\n      }" { (expression_statement "QVar2 = *pQVar18;" (assignment_expression "QVar2 = *pQVar18" identifier = (pointer_expression "*pQVar18" * identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "*pQVar18 = pQVar18[iVar22 - iVar33];" (assignment_expression "*pQVar18 = pQVar18[iVar22 - iVar33]" (pointer_expression "*pQVar18" * identifier) = (subscript_expression "pQVar18[iVar22 - iVar33]" identifier [ (binary_expression "iVar22 - iVar33" identifier - identifier) ])) ;) (expression_statement "pQVar18[iVar22 - iVar33] = QVar2;" (assignment_expression "pQVar18[iVar22 - iVar33] = QVar2" (subscript_expression "pQVar18[iVar22 - iVar33]" identifier [ (binary_expression "iVar22 - iVar33" identifier - identifier) ]) = identifier) ;) (expression_statement "pQVar18 = pQVar18 + sVar11;" (assignment_expression "pQVar18 = pQVar18 + sVar11" identifier = (binary_expression "pQVar18 + sVar11" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar28 != (uint)local_fc)" ( (binary_expression "iVar28 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (expression_statement "ResetQuantumState(quantum_info);" (call_expression "ResetQuantumState(quantum_info)" identifier (argument_list "(quantum_info)" ( identifier ))) ;) (expression_statement "local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);" (assignment_expression "local_c0 = GetQuantumExtent(image,quantum_info,quantum_type)" identifier = (call_expression "GetQuantumExtent(image,quantum_info,quantum_type)" identifier (argument_list "(image,quantum_info,quantum_type)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(quantum_type) {\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }" switch (parenthesized_expression "(quantum_type)" ( identifier )) (compound_statement "{\n    case AlphaQuantum:\n      goto _L4758;\n    case BGRAQuantum:\n      goto _L4806;\n    case BGROQuantum:\n      goto _L4807;\n    case BGRQuantum:\n      goto _L4805;\n    case BlackQuantum:\n      goto _L4808;\n    case BlueQuantum:\n    case YellowQuantum:\n      goto _L4852;\n    case CbYCrAQuantum:\n    case RGBAQuantum:\n      goto _L5114;\n    case CbYCrQuantum:\n    case RGBQuantum:\n      goto _L5113;\n    case CbYCrYQuantum:\n      goto _L4898;\n    case CMYKAQuantum:\n      goto _L4896;\n    case CMYKOQuantum:\n      goto _L4897;\n    case CMYKQuantum:\n      goto _L4895;\n    case CyanQuantum:\n    case RedQuantum:\n      goto _L5026;\n    case GrayAlphaQuantum:\n      goto _L4981;\n    case GrayQuantum:\n      goto _L4980;\n    case GreenQuantum:\n    case MagentaQuantum:\n      goto _L4982;\n    case IndexAlphaQuantum:\n      goto _L5025;\n    case IndexQuantum:\n      goto _L5024;\n    case OpacityQuantum:\n      goto _L5068;\n    case RGBOQuantum:\n      goto _L5115;\n    }" { (case_statement "case AlphaQuantum:\n      goto _L4758;" case identifier : (goto_statement "goto _L4758;" goto statement_identifier ;)) (case_statement "case BGRAQuantum:\n      goto _L4806;" case identifier : (goto_statement "goto _L4806;" goto statement_identifier ;)) (case_statement "case BGROQuantum:\n      goto _L4807;" case identifier : (goto_statement "goto _L4807;" goto statement_identifier ;)) (case_statement "case BGRQuantum:\n      goto _L4805;" case identifier : (goto_statement "goto _L4805;" goto statement_identifier ;)) (case_statement "case BlackQuantum:\n      goto _L4808;" case identifier : (goto_statement "goto _L4808;" goto statement_identifier ;)) (case_statement "case BlueQuantum:" case identifier :) (case_statement "case YellowQuantum:\n      goto _L4852;" case identifier : (goto_statement "goto _L4852;" goto statement_identifier ;)) (case_statement "case CbYCrAQuantum:" case identifier :) (case_statement "case RGBAQuantum:\n      goto _L5114;" case identifier : (goto_statement "goto _L5114;" goto statement_identifier ;)) (case_statement "case CbYCrQuantum:" case identifier :) (case_statement "case RGBQuantum:\n      goto _L5113;" case identifier : (goto_statement "goto _L5113;" goto statement_identifier ;)) (case_statement "case CbYCrYQuantum:\n      goto _L4898;" case identifier : (goto_statement "goto _L4898;" goto statement_identifier ;)) (case_statement "case CMYKAQuantum:\n      goto _L4896;" case identifier : (goto_statement "goto _L4896;" goto statement_identifier ;)) (case_statement "case CMYKOQuantum:\n      goto _L4897;" case identifier : (goto_statement "goto _L4897;" goto statement_identifier ;)) (case_statement "case CMYKQuantum:\n      goto _L4895;" case identifier : (goto_statement "goto _L4895;" goto statement_identifier ;)) (case_statement "case CyanQuantum:" case identifier :) (case_statement "case RedQuantum:\n      goto _L5026;" case identifier : (goto_statement "goto _L5026;" goto statement_identifier ;)) (case_statement "case GrayAlphaQuantum:\n      goto _L4981;" case identifier : (goto_statement "goto _L4981;" goto statement_identifier ;)) (case_statement "case GrayQuantum:\n      goto _L4980;" case identifier : (goto_statement "goto _L4980;" goto statement_identifier ;)) (case_statement "case GreenQuantum:" case identifier :) (case_statement "case MagentaQuantum:\n      goto _L4982;" case identifier : (goto_statement "goto _L4982;" goto statement_identifier ;)) (case_statement "case IndexAlphaQuantum:\n      goto _L5025;" case identifier : (goto_statement "goto _L5025;" goto statement_identifier ;)) (case_statement "case IndexQuantum:\n      goto _L5024;" case identifier : (goto_statement "goto _L5024;" goto statement_identifier ;)) (case_statement "case OpacityQuantum:\n      goto _L5068;" case identifier : (goto_statement "goto _L5068;" goto statement_identifier ;)) (case_statement "case RGBOQuantum:\n      goto _L5115;" case identifier : (goto_statement "goto _L5115;" goto statement_identifier ;)) })) }) (else_clause "else {\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }" else (compound_statement "{\n    local_fc = GetCacheViewExtent(image_view);\n    local_c4 = GetCacheViewVirtualPixelQueue(image_view);\n    if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;\n    pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);\nLAB_001548e3:\n    dVar4 = _DAT_0029f148;\n    sVar11 = image->columns;\n    if ((int)sVar11 < 1) goto LAB_001547f3;\n    pPVar8 = image->channel_map;\n    PVar9 = pPVar8[4].traits;\n    sVar10 = image->number_channels;\n    sVar31 = 0;\n    do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);\n    if (uVar16 < 2) goto LAB_00154999;\nLAB_001547fe:\n    ResetQuantumState(quantum_info);\n    local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);\n    switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }\n    if (1 < uVar16) goto _L4734;\n  }" { (expression_statement "local_fc = GetCacheViewExtent(image_view);" (assignment_expression "local_fc = GetCacheViewExtent(image_view)" identifier = (call_expression "GetCacheViewExtent(image_view)" identifier (argument_list "(image_view)" ( identifier )))) ;) (expression_statement "local_c4 = GetCacheViewVirtualPixelQueue(image_view);" (assignment_expression "local_c4 = GetCacheViewVirtualPixelQueue(image_view)" identifier = (call_expression "GetCacheViewVirtualPixelQueue(image_view)" identifier (argument_list "(image_view)" ( identifier )))) ;) (if_statement "if (quantum_info->alpha_type != AssociatedQuantumAlpha) goto LAB_001547f3;" if (parenthesized_expression "(quantum_info->alpha_type != AssociatedQuantumAlpha)" ( (binary_expression "quantum_info->alpha_type != AssociatedQuantumAlpha" (field_expression "quantum_info->alpha_type" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "pdVar17 = GetCacheViewAuthenticPixelQueue(image_view);" (assignment_expression "pdVar17 = GetCacheViewAuthenticPixelQueue(image_view)" identifier = (call_expression "GetCacheViewAuthenticPixelQueue(image_view)" identifier (argument_list "(image_view)" ( identifier )))) ;) (labeled_statement "LAB_001548e3:\n    dVar4 = _DAT_0029f148;" statement_identifier : (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;)) (expression_statement "sVar11 = image->columns;" (assignment_expression "sVar11 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if ((int)sVar11 < 1) goto LAB_001547f3;" if (parenthesized_expression "((int)sVar11 < 1)" ( (binary_expression "(int)sVar11 < 1" (cast_expression "(int)sVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "PVar9 = pPVar8[4].traits;" (assignment_expression "PVar9 = pPVar8[4].traits" identifier = (field_expression "pPVar8[4].traits" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "sVar10 = image->number_channels;" (assignment_expression "sVar10 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "sVar31 = 0;" (assignment_expression "sVar31 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    } while (sVar31 != sVar11);" do (compound_statement "{\n      if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }\n      pdVar24 = pdVar17;\n      pPVar27 = pPVar8;\n      if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }\n      pdVar17 = pdVar17 + sVar10;\n      sVar31 = sVar31 + 1;\n    }" { (if_statement "if (PVar9 == UndefinedPixelTrait) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }" if (parenthesized_expression "(PVar9 == UndefinedPixelTrait)" ( (binary_expression "PVar9 == UndefinedPixelTrait" identifier == identifier) )) (compound_statement "{\n        dVar5 = 1.0;\n      }" { (expression_statement "dVar5 = 1.0;" (assignment_expression "dVar5 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }" else (compound_statement "{\n        dVar5 = pdVar17[pPVar8[4].offset] * dVar4;\n      }" { (expression_statement "dVar5 = pdVar17[pPVar8[4].offset] * dVar4;" (assignment_expression "dVar5 = pdVar17[pPVar8[4].offset] * dVar4" identifier = (binary_expression "pdVar17[pPVar8[4].offset] * dVar4" (subscript_expression "pdVar17[pPVar8[4].offset]" identifier [ (field_expression "pPVar8[4].offset" (subscript_expression "pPVar8[4]" identifier [ number_literal ]) . field_identifier) ]) * identifier)) ;) }))) (expression_statement "pdVar24 = pdVar17;" (assignment_expression "pdVar24 = pdVar17" identifier = identifier) ;) (expression_statement "pPVar27 = pPVar8;" (assignment_expression "pPVar27 = pPVar8" identifier = identifier) ;) (if_statement "if (0 < (int)sVar10) {\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }" if (parenthesized_expression "(0 < (int)sVar10)" ( (binary_expression "0 < (int)sVar10" number_literal < (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);\n      }" { (do_statement "do {\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        } while (pPVar27 != pPVar8 + sVar10);" do (compound_statement "{\n          if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }\n          pPVar27 = pPVar27 + 1;\n          pdVar24 = pdVar24 + 1;\n        }" { (if_statement "if ((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait) {\n            *pdVar24 = *pdVar24 * dVar5;\n          }" if (parenthesized_expression "((pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait)" ( (binary_expression "(pPVar8[pPVar27->channel].traits & UpdatePixelTrait) != UndefinedPixelTrait" (parenthesized_expression "(pPVar8[pPVar27->channel].traits & UpdatePixelTrait)" ( (binary_expression "pPVar8[pPVar27->channel].traits & UpdatePixelTrait" (field_expression "pPVar8[pPVar27->channel].traits" (subscript_expression "pPVar8[pPVar27->channel]" identifier [ (field_expression "pPVar27->channel" identifier -> field_identifier) ]) . field_identifier) & identifier) )) != identifier) )) (compound_statement "{\n            *pdVar24 = *pdVar24 * dVar5;\n          }" { (expression_statement "*pdVar24 = *pdVar24 * dVar5;" (assignment_expression "*pdVar24 = *pdVar24 * dVar5" (pointer_expression "*pdVar24" * identifier) = (binary_expression "*pdVar24 * dVar5" (pointer_expression "*pdVar24" * identifier) * identifier)) ;) })) (expression_statement "pPVar27 = pPVar27 + 1;" (assignment_expression "pPVar27 = pPVar27 + 1" identifier = (binary_expression "pPVar27 + 1" identifier + number_literal)) ;) (expression_statement "pdVar24 = pdVar24 + 1;" (assignment_expression "pdVar24 = pdVar24 + 1" identifier = (binary_expression "pdVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar27 != pPVar8 + sVar10)" ( (binary_expression "pPVar27 != pPVar8 + sVar10" identifier != (binary_expression "pPVar8 + sVar10" identifier + identifier)) )) ;) })) (expression_statement "pdVar17 = pdVar17 + sVar10;" (assignment_expression "pdVar17 = pdVar17 + sVar10" identifier = (binary_expression "pdVar17 + sVar10" identifier + identifier)) ;) (expression_statement "sVar31 = sVar31 + 1;" (assignment_expression "sVar31 = sVar31 + 1" identifier = (binary_expression "sVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar31 != sVar11)" ( (binary_expression "sVar31 != sVar11" identifier != identifier) )) ;) (if_statement "if (uVar16 < 2) goto LAB_00154999;" if (parenthesized_expression "(uVar16 < 2)" ( (binary_expression "uVar16 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00154999;" goto statement_identifier ;)) (labeled_statement "LAB_001547fe:\n    ResetQuantumState(quantum_info);" statement_identifier : (expression_statement "ResetQuantumState(quantum_info);" (call_expression "ResetQuantumState(quantum_info)" identifier (argument_list "(quantum_info)" ( identifier ))) ;)) (expression_statement "local_c0 = GetQuantumExtent(image,quantum_info,quantum_type);" (assignment_expression "local_c0 = GetQuantumExtent(image,quantum_info,quantum_type)" identifier = (call_expression "GetQuantumExtent(image,quantum_info,quantum_type)" identifier (argument_list "(image,quantum_info,quantum_type)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(quantum_type) {\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }" switch (parenthesized_expression "(quantum_type)" ( identifier )) (compound_statement "{\n    default:\n      goto _L4734;\n    case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case BlueQuantum:\n    case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;\n    case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case CyanQuantum:\n    case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case GreenQuantum:\n    case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;\n    case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;\n    case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;\n    case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;\n    case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n    }" { (case_statement "default:\n      goto _L4734;" default : (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case AlphaQuantum:\n_L4758:\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;" case identifier : (labeled_statement "_L4758:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "fVar1 = DAT_0029f710;" (assignment_expression "fVar1 = DAT_0029f710" identifier = identifier) ;) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfb;\nLAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);\n      }" { (expression_statement "pcVar34 = "ExportAlphaQuantum";" (assignment_expression "pcVar34 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xfb;" (assignment_expression "uVar16 = 0xfb" identifier = number_literal) ;) (labeled_statement "LAB_00159158:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);" statement_identifier : comment (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34);" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34)" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar16,\n                      pcVar34)" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportAlphaQuantum";\n        uVar16 = 0xfc;\nLAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);\n      }" { (expression_statement "pcVar34 = "ExportAlphaQuantum";" (assignment_expression "pcVar34 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xfc;" (assignment_expression "uVar16 = 0xfc" identifier = number_literal) ;) (labeled_statement "LAB_00159135:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);" statement_identifier : comment (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34);" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34)" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar16,pcVar34)" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "iVar33 = (uint)local_fc;" (assignment_expression "iVar33 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" if (parenthesized_expression "(uVar16 == 0x10)" ( (binary_expression "uVar16 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (if_statement "if (image->channel_map[4].traits == UndefinedPixelTrait) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }" if (parenthesized_expression "(image->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                fVar1 = 1.0;\n              }" { (expression_statement "fVar1 = 1.0;" (assignment_expression "fVar1 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]);" (assignment_expression "fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset])" identifier = (cast_expression "(float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset])" ( (binary_expression "(longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[4].offset]" (cast_expression "(longdouble)dVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)local_c4[image->channel_map[4].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) )))) ;) }))) (expression_statement "uVar15 = SinglePrecisionToHalf(fVar1);" (assignment_expression "uVar15 = SinglePrecisionToHalf(fVar1)" identifier = (call_expression "SinglePrecisionToHalf(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (if_statement "if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }" if (parenthesized_expression "(image->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_00157b5e:\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }" { (labeled_statement "LAB_00157b5e:\n                iVar22 = -1;" statement_identifier : (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;)) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }" else (compound_statement "{\n                dVar4 = local_c4[image->channel_map[4].offset];\n                if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[4].offset];" (assignment_expression "dVar4 = local_c4[image->channel_map[4].offset]" identifier = (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (dVar4 <= 0.0) {\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" if (parenthesized_expression "(dVar4 <= 0.0)" ( (binary_expression "dVar4 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                  iVar22 = 0;\n                  bVar29 = 0;\n                }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" else (compound_statement "{\n                  if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;\n                  iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" { (if_statement "if ((double)DAT_0029f710 <= dVar4) goto LAB_00157b5e;" if (parenthesized_expression "((double)DAT_0029f710 <= dVar4)" ( (binary_expression "(double)DAT_0029f710 <= dVar4" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00157b5e;" goto statement_identifier ;)) (expression_statement "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" if (parenthesized_expression "(uVar16 < 0x11)" ( (binary_expression "uVar16 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00157d50:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154c68;\n      }" { (if_statement "if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0xff;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }" if (parenthesized_expression "(image->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                bVar29 = 0;\n                if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }\n              }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map[4].offset]) {\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map[4].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[4].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                  dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }\n                }" { (expression_statement "dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar4 = local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "local_c4[image->channel_map[4].offset] / (double)DAT_002a7ff0" (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002a7ff4 <= dVar4) {\n                    bVar29 = 0xff;\n                  }\n                  else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }" if (parenthesized_expression "((double)DAT_002a7ff4 <= dVar4)" ( (binary_expression "(double)DAT_002a7ff4 <= dVar4" (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    bVar29 = 0xff;\n                  }" { (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }" else (compound_statement "{\n                    bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                  }" { (expression_statement "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_00157d50:\n        local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) goto LAB_00154c68;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00154c68;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" else (compound_statement "{\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00157d50;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154c68:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" { (if_statement "if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 0x20)" ( (binary_expression "uVar16 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                fVar13 = fVar1;\n                if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }\n                fVar13 = fVar13 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar13 >> 8);\n                bVar25 = (byte)((uint)fVar13 >> 0x18);\n                bVar23 = (byte)((uint)fVar13 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (expression_statement "fVar13 = fVar1;" (assignment_expression "fVar13 = fVar1" identifier = identifier) ;) (if_statement "if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }" if (parenthesized_expression "(image->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                  fVar13 = (float)local_c4[image->channel_map[4].offset];\n                }" { (expression_statement "fVar13 = (float)local_c4[image->channel_map[4].offset];" (assignment_expression "fVar13 = (float)local_c4[image->channel_map[4].offset]" identifier = (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ;) })) (expression_statement "fVar13 = fVar13 * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar13 = fVar13 * (float)dVar4 + (float)dVar5" identifier = (binary_expression "fVar13 * (float)dVar4 + (float)dVar5" (binary_expression "fVar13 * (float)dVar4" identifier * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar13 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar13 >> 8)" identifier = (call_expression "(byte)((uint)fVar13 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar13 >> 8)" ( (binary_expression "(uint)fVar13 >> 8" (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar13 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar13 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar13 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar13 >> 0x18)" ( (binary_expression "(uint)fVar13 >> 0x18" (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar13 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar13 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar13 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar13 >> 0x10)" ( (binary_expression "(uint)fVar13 >> 0x10" (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                  *pixels = SUB41(fVar13,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = SUB41(fVar13,0);" (assignment_expression "*pixels = SUB41(fVar13,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar13,0)" identifier (argument_list "(fVar13,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar13,0);\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar13,0);" (assignment_expression "pixels[3] = SUB41(fVar13,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar13,0)" identifier (argument_list "(fVar13,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (do_statement "do {\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (if_statement "if (image->channel_map[4].traits == UndefinedPixelTrait) {\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" if (parenthesized_expression "(image->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\nLAB_00157c2d:\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }" { (labeled_statement "LAB_00157c2d:\n                  local_64._0_1_ = 0xff;" statement_identifier : (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;)) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" else (if_statement "if (local_c4[image->channel_map[4].offset] <= 0.0) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" if (parenthesized_expression "(local_c4[image->channel_map[4].offset] <= 0.0)" ( (binary_expression "local_c4[image->channel_map[4].offset] <= 0.0" (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) <= number_literal) )) (compound_statement "{\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" else (compound_statement "{\n                  dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) goto LAB_00157c2d;\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" { (expression_statement "dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar4 = local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec" identifier = (binary_expression "local_c4[image->channel_map[4].offset] * (double)DAT_002a7fec" (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) goto LAB_00157c2d;" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (goto_statement "goto LAB_00157c2d;" goto statement_identifier ;)) (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 != 0x40) goto LAB_00157d50;" if (parenthesized_expression "(uVar16 != 0x40)" ( (binary_expression "uVar16 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00157d50;" goto statement_identifier ;)) (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (expression_statement "dVar6 = (double)DAT_0029f710;" (assignment_expression "dVar6 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);" do (compound_statement "{\n              dVar14 = dVar6;\n              if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }\n              dVar14 = dVar14 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar14 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar14 >> 8);\n              bVar25 = (byte)((ulonglong)dVar14 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar14 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            }" { (expression_statement "dVar14 = dVar6;" (assignment_expression "dVar14 = dVar6" identifier = identifier) ;) (if_statement "if (image->channel_map[4].traits != UndefinedPixelTrait) {\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }" if (parenthesized_expression "(image->channel_map[4].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits != UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) (compound_statement "{\n                dVar14 = local_c4[image->channel_map[4].offset];\n              }" { (expression_statement "dVar14 = local_c4[image->channel_map[4].offset];" (assignment_expression "dVar14 = local_c4[image->channel_map[4].offset]" identifier = (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) })) (expression_statement "dVar14 = dVar14 * dVar4 + dVar5;" (assignment_expression "dVar14 = dVar14 * dVar4 + dVar5" identifier = (binary_expression "dVar14 * dVar4 + dVar5" (binary_expression "dVar14 * dVar4" identifier * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar14 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar14 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar14 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x28)" ( (binary_expression "(ulonglong)dVar14 >> 0x28" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar14 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar14 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar14 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 8)" ( (binary_expression "(ulonglong)dVar14 >> 8" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar14 >> 0x38);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar14 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar14 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x38)" ( (binary_expression "(ulonglong)dVar14 >> 0x38" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar26 = (byte)((ulonglong)dVar14 >> 0x20);" (assignment_expression "bVar26 = (byte)((ulonglong)dVar14 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar14 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x20)" ( (binary_expression "(ulonglong)dVar14 >> 0x20" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar14 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar14 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x18)" ( (binary_expression "(ulonglong)dVar14 >> 0x18" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar14 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar14 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x30)" ( (binary_expression "(ulonglong)dVar14 >> 0x30" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10);" (assignment_expression "local_f4._0_1_ = (byte)((ulonglong)dVar14 >> 0x10)" (field_expression "local_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar14 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar14 >> 0x10)" ( (binary_expression "(ulonglong)dVar14 >> 0x10" (cast_expression "(ulonglong)dVar14" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB81(dVar14,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }" { (expression_statement "*pixels = SUB81(dVar14,0);" (assignment_expression "*pixels = SUB81(dVar14,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar14,0)" identifier (argument_list "(dVar14,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar26;" (assignment_expression "pixels[4] = bVar26" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = bVar25;" (assignment_expression "pixels[7] = bVar25" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_f4;" (assignment_expression "pixels[2] = (byte)local_f4" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_fc;" (assignment_expression "pixels[3] = (byte)local_fc" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_104;" (assignment_expression "pixels[6] = (byte)local_104" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" else (compound_statement "{\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar14,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[3] = bVar26;" (assignment_expression "pixels[3] = bVar26" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar14,0);" (assignment_expression "pixels[7] = SUB81(dVar14,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar14,0)" identifier (argument_list "(dVar14,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_fc;" (assignment_expression "pixels[4] = (byte)local_fc" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_104;" (assignment_expression "pixels[1] = (byte)local_104" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[5] = (byte)local_f4;" (assignment_expression "pixels[5] = (byte)local_f4" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != iVar33)" ( (binary_expression "iVar22 != iVar33" identifier != identifier) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_00154c68:\n        uVar32 = 0;" statement_identifier : (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar32 = uVar16;\n        }" { (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar32 - 1);" (assignment_expression "bVar23 = (byte)(uVar32 - 1)" identifier = (call_expression "(byte)(uVar32 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar32 - 1)" ( (binary_expression "uVar32 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar20 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar20 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" identifier = identifier) ;) (expression_statement "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" if (parenthesized_expression "((uVar32 - 1 & 0x20) != 0)" ( (binary_expression "(uVar32 - 1 & 0x20) != 0" (parenthesized_expression "(uVar32 - 1 & 0x20)" ( (binary_expression "uVar32 - 1 & 0x20" (binary_expression "uVar32 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar20;" (assignment_expression "uVar30 = uVar20" identifier = identifier) ;) })) (expression_statement "local_dc = uVar21 - 1;" (assignment_expression "local_dc = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);" (assignment_expression "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0)" identifier = (binary_expression "(uVar30 - 1) + (uint)(uVar21 != 0)" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar21 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        local_e4._0_4_ = 0;\n        do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" { (expression_statement "local_e4._0_4_ = 0;" (assignment_expression "local_e4._0_4_ = 0" (field_expression "local_e4._0_4_" identifier . field_identifier) = number_literal) ;) (do_statement "do {\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        } while( true );" do (compound_statement "{\n          if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }" { (if_statement "if (image->channel_map[4].traits == UndefinedPixelTrait) {\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }" if (parenthesized_expression "(image->channel_map[4].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[4].traits == UndefinedPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n            dVar4 = (double)DAT_0029f710;\nLAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }" { (expression_statement "dVar4 = (double)DAT_0029f710;" (assignment_expression "dVar4 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "LAB_001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);" statement_identifier : (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,local_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,local_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,local_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,local_dc)" identifier (argument_list "(iStack_d8,local_dc)" ( identifier , identifier ))))) ;)) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_f4 = -1;" (assignment_expression "local_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * dVar4) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar4) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar4)" ( (binary_expression "(double)fVar1 * dVar4" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }" else (compound_statement "{\n                local_f4 = (longlong)ROUND(dVar4);\n              }" { (expression_statement "local_f4 = (longlong)ROUND(dVar4);" (assignment_expression "local_f4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) }) (else_clause "else {\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }" else (compound_statement "{\n            local_f4 = 0;\n            dVar4 = local_c4[image->channel_map[4].offset];\n            if (0.0 < dVar4) goto LAB_001566ad;\n          }" { (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = local_c4[image->channel_map[4].offset];" (assignment_expression "dVar4 = local_c4[image->channel_map[4].offset]" identifier = (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (0.0 < dVar4) goto LAB_001566ad;" if (parenthesized_expression "(0.0 < dVar4)" ( (binary_expression "0.0 < dVar4" number_literal < identifier) )) (goto_statement "goto LAB_001566ad;" goto statement_identifier ;)) }))) (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar32)" ( (binary_expression "0 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" { (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n              uVar21 = uVar16;\n            }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar32 = uVar16 - uVar21;" (assignment_expression "uVar32 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }" if (parenthesized_expression "(-1 < (int)uVar32)" ( (binary_expression "-1 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar16 = uVar32;\n            }" { (expression_statement "uVar16 = uVar32;" (assignment_expression "uVar16 = uVar32" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n              *pixels = 0;\n            }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n              *pixels = 0;\n            }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_f4 >> bVar29" (cast_expression "(uint)local_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_f4._4_4_ << 0x20 - bVar29" (field_expression "local_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" { (expression_statement "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar20" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar29 = 0;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_e4._0_4_ = (uint)local_e4 + 1;" (assignment_expression "local_e4._0_4_ = (uint)local_e4 + 1" (field_expression "local_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)local_e4 + 1" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if ((uint)local_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)local_e4 == (uint)local_fc)" ( (binary_expression "(uint)local_e4 == (uint)local_fc" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case BGRAQuantum:\n_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4806:\n      ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportBGRAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case BGROQuantum:\n_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4807:\n      ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportBGROQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case BGRQuantum:\n_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4805:\n      ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportBGRQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case BlackQuantum:\n_L4808:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;" case identifier : (labeled_statement "_L4808:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (image->colorspace != CMYKColorspace) {\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }" if (parenthesized_expression "(image->colorspace != CMYKColorspace)" ( (binary_expression "image->colorspace != CMYKColorspace" (field_expression "image->colorspace" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);\n        goto _L4734;\n      }" { (expression_statement "ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename);" (call_expression "ThrowMagickException\n                  (exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename)" identifier (argument_list "(exception,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,\n                   "ColorSeparatedImageRequired","`%s\'",image->filename)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportBlackQuantum"" " string_content ") , number_literal , identifier , (string_literal ""ColorSeparatedImageRequired"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "iVar33 = (uint)local_fc;" (assignment_expression "iVar33 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" if (parenthesized_expression "(uVar16 == 0x10)" ( (binary_expression "uVar16 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }" if (parenthesized_expression "(image->channel_map[3].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits == UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                fVar1 = 0.0;\n              }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]);" (assignment_expression "fVar1 = (float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset])" identifier = (cast_expression "(float)((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset])" ( (binary_expression "(longdouble)dVar4 *\n                               (longdouble)local_c4[image->channel_map[3].offset]" (cast_expression "(longdouble)dVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)local_c4[image->channel_map[3].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) )))) ;) }))) (expression_statement "uVar15 = SinglePrecisionToHalf(fVar1);" (assignment_expression "uVar15 = SinglePrecisionToHalf(fVar1)" identifier = (call_expression "SinglePrecisionToHalf(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (if_statement "if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0))" ( (binary_expression "(image->channel_map[3].traits == UndefinedPixelTrait) ||\n                 (dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)" (parenthesized_expression "(image->channel_map[3].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits == UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) || (parenthesized_expression "(dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0)" ( (comma_expression "dVar4 = local_c4[image->channel_map[3].offset], dVar4 <= 0.0" (assignment_expression "dVar4 = local_c4[image->channel_map[3].offset]" identifier = (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) , (binary_expression "dVar4 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                iVar22 = 0;\n                bVar29 = 0;\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar4)" ( (binary_expression "(double)DAT_0029f710 <= dVar4" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }" { (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (compound_statement "{\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" { (expression_statement "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" if (parenthesized_expression "(uVar16 < 0x11)" ( (binary_expression "uVar16 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_00158120:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_001563c0;\n      }" { (if_statement "if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0;\n              if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])) {\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset]))" ( (binary_expression "(image->channel_map[3].traits != UndefinedPixelTrait) &&\n                 (0.0 < local_c4[image->channel_map[3].offset])" (parenthesized_expression "(image->channel_map[3].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits != UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(0.0 < local_c4[image->channel_map[3].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[3].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ))) )) (compound_statement "{\n                dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar4 = local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "local_c4[image->channel_map[3].offset] / (double)DAT_002a7ff0" (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_002a7ff4)" ( (binary_expression "dVar4 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_00158120:\n        local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) goto LAB_001563c0;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001563c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" else (compound_statement "{\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_00158120;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_001563c0:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" { (if_statement "if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 0x20)" ( (binary_expression "uVar16 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }" if (parenthesized_expression "(image->channel_map[3].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits == UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }" else (compound_statement "{\n                  fVar1 = (float)local_c4[image->channel_map[3].offset];\n                }" { (expression_statement "fVar1 = (float)local_c4[image->channel_map[3].offset];" (assignment_expression "fVar1 = (float)local_c4[image->channel_map[3].offset]" identifier = (cast_expression "(float)local_c4[image->channel_map[3].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar4 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar4 + (float)dVar5" (binary_expression "fVar1 * (float)dVar4" identifier * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = SUB41(fVar1,0);" (assignment_expression "*pixels = SUB41(fVar1,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar1,0);" (assignment_expression "pixels[3] = SUB41(fVar1,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (if_statement "if ((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0))" ( (binary_expression "(image->channel_map[3].traits == UndefinedPixelTrait) ||\n                   (local_c4[image->channel_map[3].offset] <= 0.0)" (parenthesized_expression "(image->channel_map[3].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits == UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) || (parenthesized_expression "(local_c4[image->channel_map[3].offset] <= 0.0)" ( (binary_expression "local_c4[image->channel_map[3].offset] <= 0.0" (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) <= number_literal) ))) )) (compound_statement "{\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" { (expression_statement "dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar4 = local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec" identifier = (binary_expression "local_c4[image->channel_map[3].offset] * (double)DAT_002a7fec" (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }" { (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 != 0x40) goto LAB_00158120;" if (parenthesized_expression "(uVar16 != 0x40)" ( (binary_expression "uVar16 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00158120;" goto statement_identifier ;)) (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);" do (compound_statement "{\n              if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            }" { (if_statement "if (image->channel_map[3].traits == UndefinedPixelTrait) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }" if (parenthesized_expression "(image->channel_map[3].traits == UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits == UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }" else (compound_statement "{\n                dVar6 = local_c4[image->channel_map[3].offset];\n              }" { (expression_statement "dVar6 = local_c4[image->channel_map[3].offset];" (assignment_expression "dVar6 = local_c4[image->channel_map[3].offset]" identifier = (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) }))) (expression_statement "dVar6 = dVar6 * dVar4 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar4 + dVar5" identifier = (binary_expression "dVar6 * dVar4 + dVar5" (binary_expression "dVar6 * dVar4" identifier * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar26 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar26 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "local_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_f4;\n                pixels[3] = (byte)local_fc;\n                pixels[6] = (byte)local_104;\n              }" { (expression_statement "*pixels = SUB81(dVar6,0);" (assignment_expression "*pixels = SUB81(dVar6,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar26;" (assignment_expression "pixels[4] = bVar26" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = bVar25;" (assignment_expression "pixels[7] = bVar25" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_f4;" (assignment_expression "pixels[2] = (byte)local_f4" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_fc;" (assignment_expression "pixels[3] = (byte)local_fc" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_104;" (assignment_expression "pixels[6] = (byte)local_104" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" else (compound_statement "{\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_fc;\n                pixels[1] = (byte)local_104;\n                pixels[5] = (byte)local_f4;\n                pixels[6] = bVar23;\n              }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[3] = bVar26;" (assignment_expression "pixels[3] = bVar26" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar6,0);" (assignment_expression "pixels[7] = SUB81(dVar6,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_fc;" (assignment_expression "pixels[4] = (byte)local_fc" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_104;" (assignment_expression "pixels[1] = (byte)local_104" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[5] = (byte)local_f4;" (assignment_expression "pixels[5] = (byte)local_f4" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != iVar33)" ( (binary_expression "iVar22 != iVar33" identifier != identifier) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_001563c0:\n        uVar32 = 0;" statement_identifier : (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar32 = uVar16;\n        }" { (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar32 - 1);" (assignment_expression "bVar23 = (byte)(uVar32 - 1)" identifier = (call_expression "(byte)(uVar32 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar32 - 1)" ( (binary_expression "uVar32 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar20 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar20 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" identifier = identifier) ;) (expression_statement "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" if (parenthesized_expression "((uVar32 - 1 & 0x20) != 0)" ( (binary_expression "(uVar32 - 1 & 0x20) != 0" (parenthesized_expression "(uVar32 - 1 & 0x20)" ( (binary_expression "uVar32 - 1 & 0x20" (binary_expression "uVar32 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar20;" (assignment_expression "uVar30 = uVar20" identifier = identifier) ;) })) (expression_statement "local_dc = uVar21 - 1;" (assignment_expression "local_dc = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);" (assignment_expression "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0)" identifier = (binary_expression "(uVar30 - 1) + (uint)(uVar21 != 0)" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar21 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        local_e4._0_4_ = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }" { (expression_statement "local_e4._0_4_ = 0;" (assignment_expression "local_e4._0_4_ = 0" (field_expression "local_e4._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          local_f4 = 0;\n          if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_e4._0_4_ = (uint)local_e4 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if ((uint)local_e4 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }" { (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (if_statement "if ((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }" if (parenthesized_expression "((image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset]))" ( (binary_expression "(image->channel_map[3].traits != UndefinedPixelTrait) &&\n             (0.0 < local_c4[image->channel_map[3].offset])" (parenthesized_expression "(image->channel_map[3].traits != UndefinedPixelTrait)" ( (binary_expression "image->channel_map[3].traits != UndefinedPixelTrait" (field_expression "image->channel_map[3].traits" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) && (parenthesized_expression "(0.0 < local_c4[image->channel_map[3].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[3].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ))) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,local_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,local_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,local_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,local_dc)" identifier (argument_list "(iStack_d8,local_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_f4 = -1;" (assignment_expression "local_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * local_c4[image->channel_map[3].offset]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * local_c4[image->channel_map[3].offset])" ( (binary_expression "(double)fVar1 * local_c4[image->channel_map[3].offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "local_c4[image->channel_map[3].offset]" identifier [ (field_expression "image->channel_map[3].offset" (subscript_expression "image->channel_map[3]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }\n            }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                local_f4 = (longlong)ROUND(dVar4);\n              }" else (compound_statement "{\n                local_f4 = (longlong)ROUND(dVar4);\n              }" { (expression_statement "local_f4 = (longlong)ROUND(dVar4);" (assignment_expression "local_f4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar32)" ( (binary_expression "0 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" { (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n              uVar21 = uVar16;\n            }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar32 = uVar16 - uVar21;" (assignment_expression "uVar32 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }" if (parenthesized_expression "(-1 < (int)uVar32)" ( (binary_expression "-1 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar16 = uVar32;\n            }" { (expression_statement "uVar16 = uVar32;" (assignment_expression "uVar16 = uVar32" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n              *pixels = 0;\n            }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n              *pixels = 0;\n            }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_f4 >> bVar29" (cast_expression "(uint)local_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_f4._4_4_ << 0x20 - bVar29" (field_expression "local_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" { (expression_statement "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar20" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar29 = 0;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_e4._0_4_ = (uint)local_e4 + 1;" (assignment_expression "local_e4._0_4_ = (uint)local_e4 + 1" (field_expression "local_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)local_e4 + 1" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if ((uint)local_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)local_e4 == (uint)local_fc)" ( (binary_expression "(uint)local_e4 == (uint)local_fc" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) })) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case BlueQuantum:" case identifier :) (case_statement "case YellowQuantum:\n_L4852:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;" case identifier : (labeled_statement "_L4852:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e6;\n        goto LAB_00159158;\n      }" { (expression_statement "pcVar34 = "ExportBlueQuantum";" (assignment_expression "pcVar34 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x4e6;" (assignment_expression "uVar16 = 0x4e6" identifier = number_literal) ;) (goto_statement "goto LAB_00159158;" goto statement_identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportBlueQuantum";\n        uVar16 = 0x4e7;\n        goto LAB_00159135;\n      }" { (expression_statement "pcVar34 = "ExportBlueQuantum";" (assignment_expression "pcVar34 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x4e7;" (assignment_expression "uVar16 = 0x4e7" identifier = number_literal) ;) (goto_statement "goto LAB_00159135;" goto statement_identifier ;) })) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x10)" ( (binary_expression "uVar32 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]));" (assignment_expression "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]))" identifier (argument_list "((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]))" ( (cast_expression "(float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset])" ( (binary_expression "(longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[2].offset]" (cast_expression "(longdouble)dVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)local_c4[image->channel_map[2].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ))) )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              dVar4 = local_c4[image->channel_map[2].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "dVar4 = local_c4[image->channel_map[2].offset];" (assignment_expression "dVar4 = local_c4[image->channel_map[2].offset]" identifier = (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "(dVar4 <= 0.0)" ( (binary_expression "dVar4 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar22 = 0;\n                bVar29 = 0;\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar4)" ( (binary_expression "(double)DAT_0029f710 <= dVar4" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }" { (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (compound_statement "{\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" { (expression_statement "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 < 0x11)" ( (binary_expression "uVar32 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" if (parenthesized_expression "(uVar32 == 8)" ( (binary_expression "uVar32 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map[2].offset]) {\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map[2].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[2].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar4 = local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "local_c4[image->channel_map[2].offset] / (double)DAT_002a7ff0" (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_002a7ff4)" ( (binary_expression "dVar4 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" else (compound_statement "{\nLAB_00157c43:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" { (labeled_statement "LAB_00157c43:\n          local_cc = 0;" statement_identifier : (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar32 != 0) {\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00156153:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" { (labeled_statement "LAB_00156153:\n            uVar30 = 0;" statement_identifier : (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;)) (if_statement "if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }" if (parenthesized_expression "(uVar32 < 0x41)" ( (binary_expression "uVar32 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar30 = uVar32;\n            }" { (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar30 - 1);" (assignment_expression "bVar23 = (byte)(uVar30 - 1)" identifier = (call_expression "(byte)(uVar30 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar19 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar19 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (expression_statement "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" if (parenthesized_expression "((uVar30 - 1 & 0x20) != 0)" ( (binary_expression "(uVar30 - 1 & 0x20) != 0" (parenthesized_expression "(uVar30 - 1 & 0x20)" ( (binary_expression "uVar30 - 1 & 0x20" (binary_expression "uVar30 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) })) (expression_statement "local_cc = uVar20 - 1;" (assignment_expression "local_cc = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);" (assignment_expression "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0)" identifier = (binary_expression "(uVar21 - 1) + (uint)(uVar20 != 0)" (parenthesized_expression "(uVar21 - 1)" ( (binary_expression "uVar21 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar20 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" { (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map[2].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map[2].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[2].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,local_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,local_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,local_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,local_cc)" identifier (argument_list "(iStack_c8,local_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_e4 = -1;" (assignment_expression "local_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * local_c4[image->channel_map[2].offset]) /\n                        (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * local_c4[image->channel_map[2].offset])" ( (binary_expression "(double)fVar1 * local_c4[image->channel_map[2].offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_e4 = (longlong)ROUND(dVar4);" (assignment_expression "local_e4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n                (quantum_info->state).bits = 8;\n              }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar30)" ( (binary_expression "0 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" { (expression_statement "uVar21 = (quantum_info->state).bits;" (assignment_expression "uVar21 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar20 = uVar21;" (assignment_expression "uVar20 = uVar21" identifier = identifier) ;) (if_statement "if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }" if (parenthesized_expression "(uVar32 <= uVar21)" ( (binary_expression "uVar32 <= uVar21" identifier <= identifier) )) (compound_statement "{\n                  uVar20 = uVar32;\n                }" { (expression_statement "uVar20 = uVar32;" (assignment_expression "uVar20 = uVar32" identifier = identifier) ;) })) (expression_statement "uVar30 = uVar32 - uVar20;" (assignment_expression "uVar30 = uVar32 - uVar20" identifier = (binary_expression "uVar32 - uVar20" identifier - identifier)) ;) (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }" if (parenthesized_expression "(-1 < (int)uVar30)" ( (binary_expression "-1 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar32 = uVar30;\n                }" { (expression_statement "uVar32 = uVar30;" (assignment_expression "uVar32 = uVar30" identifier = identifier) ;) })) (if_statement "if (uVar21 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar21 == 8)" ( (binary_expression "uVar21 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = uVar21 - uVar20;" (assignment_expression "uVar21 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar21;" (assignment_expression "(quantum_info->state).bits = uVar21" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar32 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar32 & 0x1f" identifier = (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_e4 >> bVar29" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_e4._4_4_ << 0x20 - bVar29" (field_expression "local_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" if (parenthesized_expression "((uVar32 & 0x20) != 0)" ( (binary_expression "(uVar32 & 0x20) != 0" (parenthesized_expression "(uVar32 & 0x20)" ( (binary_expression "uVar32 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" { (expression_statement "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);" (assignment_expression "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" identifier = (binary_expression "local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" (field_expression "local_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar32 & 0x1f)" ( (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar20 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar20 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar20 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar20 & 0x1f)" ( (binary_expression "(byte)uVar20 & 0x1f" (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if (local_d4 == (uint)local_fc) break;" if (parenthesized_expression "(local_d4 == (uint)local_fc)" ( (binary_expression "local_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) })) }))) }) (else_clause "else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x20)" ( (binary_expression "uVar32 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (expression_statement "fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar1 = (float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5" identifier = (binary_expression "(float)local_c4[image->channel_map[2].offset] * (float)dVar4 + (float)dVar5" (binary_expression "(float)local_c4[image->channel_map[2].offset] * (float)dVar4" (cast_expression "(float)local_c4[image->channel_map[2].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = SUB41(fVar1,0);" (assignment_expression "*pixels = SUB41(fVar1,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar1,0);" (assignment_expression "pixels[3] = SUB41(fVar1,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (if_statement "if (local_c4[image->channel_map[2].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" if (parenthesized_expression "(local_c4[image->channel_map[2].offset] <= 0.0)" ( (binary_expression "local_c4[image->channel_map[2].offset] <= 0.0" (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) <= number_literal) )) (compound_statement "{\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar4 = local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec" identifier = (binary_expression "local_c4[image->channel_map[2].offset] * (double)DAT_002a7fec" (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }" { (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" else (compound_statement "{\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar32 != 0x40) goto LAB_00157c43;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar32 != 0x40) goto LAB_00157c43;" if (parenthesized_expression "(uVar32 != 0x40)" ( (binary_expression "uVar32 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_00157c43;" goto statement_identifier ;)) (if_statement "if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_00156153;" if (parenthesized_expression "(quantum_info->format != FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format != FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_00156153;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          }" { (expression_statement "dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5;" (assignment_expression "dVar6 = local_c4[image->channel_map[2].offset] * dVar4 + dVar5" identifier = (binary_expression "local_c4[image->channel_map[2].offset] * dVar4 + dVar5" (binary_expression "local_c4[image->channel_map[2].offset] * dVar4" (subscript_expression "local_c4[image->channel_map[2].offset]" identifier [ (field_expression "image->channel_map[2].offset" (subscript_expression "image->channel_map[2]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "local_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "local_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }" { (expression_statement "*pixels = SUB81(dVar6,0);" (assignment_expression "*pixels = SUB81(dVar6,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar25;" (assignment_expression "pixels[4] = bVar25" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_cc;" (assignment_expression "pixels[2] = (byte)local_cc" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_d4;" (assignment_expression "pixels[3] = (byte)local_d4" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_e4;" (assignment_expression "pixels[6] = (byte)local_e4" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[7] = local_ec;" (assignment_expression "pixels[7] = local_ec" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" else (compound_statement "{\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar6,0);" (assignment_expression "pixels[7] = SUB81(dVar6,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_d4;" (assignment_expression "pixels[4] = (byte)local_d4" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*pixels = local_ec;" (assignment_expression "*pixels = local_ec" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[5] = (byte)local_cc;" (assignment_expression "pixels[5] = (byte)local_cc" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_e4;" (assignment_expression "pixels[1] = (byte)local_e4" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case CbYCrYQuantum:\n_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }\n      goto _L4734;" case identifier : (labeled_statement "_L4898:\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }" statement_identifier : (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x559;\n        goto LAB_00159158;\n      }" { (expression_statement "pcVar34 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar34 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x559;" (assignment_expression "uVar16 = 0x559" identifier = number_literal) ;) (goto_statement "goto LAB_00159158;" goto statement_identifier ;) }))) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportCbYCrYQuantum";\n        uVar16 = 0x55a;\n        goto LAB_00159135;\n      }" { (expression_statement "pcVar34 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar34 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x55a;" (assignment_expression "uVar16 = 0x55a" identifier = number_literal) ;) (goto_statement "goto LAB_00159135;" goto statement_identifier ;) })) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar16 == 10) {\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" if (parenthesized_expression "(uVar16 == 10)" ( (binary_expression "uVar16 == 10" identifier == number_literal) )) (compound_statement "{\n        if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }" { (if_statement "if ((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)) {\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" if (parenthesized_expression "((quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc))" ( (binary_expression "(quantum_info->pack == MagickFalse) && (0 < (int)(uint)local_fc)" (parenthesized_expression "(quantum_info->pack == MagickFalse)" ( (binary_expression "quantum_info->pack == MagickFalse" (field_expression "quantum_info->pack" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) (compound_statement "{\n          iVar33 = 0;\n          do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4);" do (compound_statement "{\n            iVar22 = 0;\n            pPVar8 = image->channel_map;\n            do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);\n            iVar33 = iVar33 + 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[0]);\n            uVar32 = local_64 << 0xc;\n            local_64 = (uint)(longlong)ROUND(cbcr[2]);\n            uVar16 = local_64 * 4;\n            local_64 = (uint)(longlong)ROUND(cbcr[1]);\n            uVar30 = local_64 << 0x16 | uVar32 | uVar16;\n            bVar23 = (byte)(uVar30 >> 0x10);\n            bVar29 = (byte)uVar16;\n            local_10c._0_1_ = (byte)(uVar30 >> 0x18);\n            local_104._0_1_ = (byte)(uVar30 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }\n            uVar32 = uVar32 | uVar16;\n            sVar11 = image->number_channels;\n            local_64 = (uint)(longlong)ROUND(cbcr[3]);\n            uVar16 = local_64 << 0x16 | uVar32;\n            bVar23 = (byte)(uVar16 >> 0x18);\n            bVar25 = (byte)(uVar16 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar32 >> 8);\n            if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + image->number_channels + sVar11;\n            pixels = pixels + quantum_info->pad + 8;\n          }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (do_statement "do {\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            } while (iVar22 != 4);" do (compound_statement "{\n              uVar16 = (uint)(iVar33 + iVar22) % 3;\n              if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }\n              local_10c = (ulonglong)local_64;\n              cbcr[iVar22] = (double)local_10c;\n              iVar22 = iVar22 + 1;\n            }" { (expression_statement "uVar16 = (uint)(iVar33 + iVar22) % 3;" (assignment_expression "uVar16 = (uint)(iVar33 + iVar22) % 3" identifier = (binary_expression "(uint)(iVar33 + iVar22) % 3" (call_expression "(uint)(iVar33 + iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar33 + iVar22)" ( (binary_expression "iVar33 + iVar22" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar16 == 1) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }\n              else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }" if (parenthesized_expression "(uVar16 == 1)" ( (binary_expression "uVar16 == 1" identifier == number_literal) )) (compound_statement "{\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n              }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8[1].offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8[1].offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8[1].offset])" identifier (argument_list "(local_c4[pPVar8[1].offset])" ( (subscript_expression "local_c4[pPVar8[1].offset]" identifier [ (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) ]) )))))) ;) }) (else_clause "else if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }" else (if_statement "if (uVar16 == 2) {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }\n              else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }" if (parenthesized_expression "(uVar16 == 2)" ( (binary_expression "uVar16 == 2" identifier == number_literal) )) (compound_statement "{\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n              }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8[2].offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8[2].offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8[2].offset])" identifier (argument_list "(local_c4[pPVar8[2].offset])" ( (subscript_expression "local_c4[pPVar8[2].offset]" identifier [ (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) ]) )))))) ;) }) (else_clause "else {\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }" else (compound_statement "{\n                local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n              }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8->offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8->offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8->offset])" identifier (argument_list "(local_c4[pPVar8->offset])" ( (subscript_expression "local_c4[pPVar8->offset]" identifier [ (field_expression "pPVar8->offset" identifier -> field_identifier) ]) )))))) ;) }))))) (expression_statement "local_10c = (ulonglong)local_64;" (assignment_expression "local_10c = (ulonglong)local_64" identifier = (cast_expression "(ulonglong)local_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "cbcr[iVar22] = (double)local_10c;" (assignment_expression "cbcr[iVar22] = (double)local_10c" (subscript_expression "cbcr[iVar22]" identifier [ identifier ]) = (cast_expression "(double)local_10c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != 4)" ( (binary_expression "iVar22 != 4" identifier != number_literal) )) ;) (expression_statement "iVar33 = iVar33 + 4;" (assignment_expression "iVar33 = iVar33 + 4" identifier = (binary_expression "iVar33 + 4" identifier + number_literal)) ;) (expression_statement "local_64 = (uint)(longlong)ROUND(cbcr[0]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(cbcr[0])" identifier = (cast_expression "(uint)(longlong)ROUND(cbcr[0])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(cbcr[0])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(cbcr[0])" identifier (argument_list "(cbcr[0])" ( (subscript_expression "cbcr[0]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar32 = local_64 << 0xc;" (assignment_expression "uVar32 = local_64 << 0xc" identifier = (binary_expression "local_64 << 0xc" identifier << number_literal)) ;) (expression_statement "local_64 = (uint)(longlong)ROUND(cbcr[2]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(cbcr[2])" identifier = (cast_expression "(uint)(longlong)ROUND(cbcr[2])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(cbcr[2])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(cbcr[2])" identifier (argument_list "(cbcr[2])" ( (subscript_expression "cbcr[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar16 = local_64 * 4;" (assignment_expression "uVar16 = local_64 * 4" identifier = (binary_expression "local_64 * 4" identifier * number_literal)) ;) (expression_statement "local_64 = (uint)(longlong)ROUND(cbcr[1]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(cbcr[1])" identifier = (cast_expression "(uint)(longlong)ROUND(cbcr[1])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(cbcr[1])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(cbcr[1])" identifier (argument_list "(cbcr[1])" ( (subscript_expression "cbcr[1]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar30 = local_64 << 0x16 | uVar32 | uVar16;" (assignment_expression "uVar30 = local_64 << 0x16 | uVar32 | uVar16" identifier = (binary_expression "local_64 << 0x16 | uVar32 | uVar16" (binary_expression "local_64 << 0x16 | uVar32" (binary_expression "local_64 << 0x16" identifier << number_literal) | identifier) | identifier)) ;) (expression_statement "bVar23 = (byte)(uVar30 >> 0x10);" (assignment_expression "bVar23 = (byte)(uVar30 >> 0x10)" identifier = (call_expression "(byte)(uVar30 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 >> 0x10)" ( (binary_expression "uVar30 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar29 = (byte)uVar16;" (assignment_expression "bVar29 = (byte)uVar16" identifier = (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar30 >> 0x18);" (assignment_expression "local_10c._0_1_ = (byte)(uVar30 >> 0x18)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar30 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 >> 0x18)" ( (binary_expression "uVar30 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)(uVar30 >> 8);" (assignment_expression "local_104._0_1_ = (byte)(uVar30 >> 8)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar30 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 >> 8)" ( (binary_expression "uVar30 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }\n            else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n              *pixels = bVar29;\n              pixels[2] = bVar23;\n              pixels[1] = (byte)local_104;\n              pixels[3] = (byte)local_10c;\n            }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = (byte)local_104;" (assignment_expression "pixels[1] = (byte)local_104" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_10c;" (assignment_expression "pixels[3] = (byte)local_10c" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }" else (compound_statement "{\n              pixels[1] = bVar23;\n              *pixels = (byte)local_10c;\n              pixels[3] = bVar29;\n              pixels[2] = (byte)local_104;\n            }" { (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pixels = (byte)local_10c;" (assignment_expression "*pixels = (byte)local_10c" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = bVar29;" (assignment_expression "pixels[3] = bVar29" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_104;" (assignment_expression "pixels[2] = (byte)local_104" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar32 = uVar32 | uVar16;" (assignment_expression "uVar32 = uVar32 | uVar16" identifier = (binary_expression "uVar32 | uVar16" identifier | identifier)) ;) (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "local_64 = (uint)(longlong)ROUND(cbcr[3]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(cbcr[3])" identifier = (cast_expression "(uint)(longlong)ROUND(cbcr[3])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(cbcr[3])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(cbcr[3])" identifier (argument_list "(cbcr[3])" ( (subscript_expression "cbcr[3]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar16 = local_64 << 0x16 | uVar32;" (assignment_expression "uVar16 = local_64 << 0x16 | uVar32" identifier = (binary_expression "local_64 << 0x16 | uVar32" (binary_expression "local_64 << 0x16" identifier << number_literal) | identifier)) ;) (expression_statement "bVar23 = (byte)(uVar16 >> 0x18);" (assignment_expression "bVar23 = (byte)(uVar16 >> 0x18)" identifier = (call_expression "(byte)(uVar16 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar16 >> 0x18)" ( (binary_expression "uVar16 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)(uVar16 >> 0x10);" (assignment_expression "bVar25 = (byte)(uVar16 >> 0x10)" identifier = (call_expression "(byte)(uVar16 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar16 >> 0x10)" ( (binary_expression "uVar16 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar32 >> 8);" (assignment_expression "local_10c._0_1_ = (byte)(uVar32 >> 8)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar32 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar32 >> 8)" ( (binary_expression "uVar32 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }\n            else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n              pixels[4] = bVar29;\n              pixels[7] = bVar23;\n              pixels[5] = (byte)local_10c;\n              pixels[6] = bVar25;\n            }" { (expression_statement "pixels[4] = bVar29;" (assignment_expression "pixels[4] = bVar29" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = bVar23;" (assignment_expression "pixels[7] = bVar23" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = (byte)local_10c;" (assignment_expression "pixels[5] = (byte)local_10c" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar25;" (assignment_expression "pixels[6] = bVar25" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }" else (compound_statement "{\n              pixels[4] = bVar23;\n              pixels[5] = bVar25;\n              pixels[7] = bVar29;\n              pixels[6] = (byte)local_10c;\n            }" { (expression_statement "pixels[4] = bVar23;" (assignment_expression "pixels[4] = bVar23" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar25;" (assignment_expression "pixels[5] = bVar25" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = bVar29;" (assignment_expression "pixels[7] = bVar29" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[6] = (byte)local_10c;" (assignment_expression "pixels[6] = (byte)local_10c" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "local_c4 = local_c4 + image->number_channels + sVar11;" (assignment_expression "local_c4 = local_c4 + image->number_channels + sVar11" identifier = (binary_expression "local_c4 + image->number_channels + sVar11" (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier)) + identifier)) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4)" ( (binary_expression "iVar33 != ((uint)local_fc - 1 >> 1) * 4 + 4" identifier != (binary_expression "((uint)local_fc - 1 >> 1) * 4 + 4" (binary_expression "((uint)local_fc - 1 >> 1) * 4" (parenthesized_expression "((uint)local_fc - 1 >> 1)" ( (binary_expression "(uint)local_fc - 1 >> 1" (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) >> number_literal) )) * number_literal) + number_literal)) )) ;) })) }) (else_clause "else if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" else (if_statement "if (0 < (int)(uint)local_fc) {\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uVar32 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );\n      }" { (expression_statement "uVar32 = (uint)local_fc - 1;" (assignment_expression "uVar32 = (uint)local_fc - 1" identifier = (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        } while( true );" do (compound_statement "{\n          iVar33 = 0;\n          pPVar8 = image->channel_map;\n          do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }\n          uVar30 = (quantum_info->state).bits;\n          if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }\n          if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }\n          while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          local_c4 = local_c4 + local_74 + image->number_channels;\n          pixels = pixels + quantum_info->pad;\n          if (local_a8 == (uVar32 >> 1) * 4 + 4) break;\n          uVar16 = quantum_info->depth;\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "pPVar8 = image->channel_map;" (assignment_expression "pPVar8 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (do_statement "do {\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          } while (iVar33 != 4);" do (compound_statement "{\n            uVar30 = (uint)(local_a8 + iVar33) % 3;\n            if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }\n            local_104 = (ulonglong)local_64;\n            cbcr[iVar33] = (double)local_104;\n            iVar33 = iVar33 + 1;\n          }" { (expression_statement "uVar30 = (uint)(local_a8 + iVar33) % 3;" (assignment_expression "uVar30 = (uint)(local_a8 + iVar33) % 3" identifier = (binary_expression "(uint)(local_a8 + iVar33) % 3" (call_expression "(uint)(local_a8 + iVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a8 + iVar33)" ( (binary_expression "local_a8 + iVar33" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar30 == 1) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }\n            else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }" if (parenthesized_expression "(uVar30 == 1)" ( (binary_expression "uVar30 == 1" identifier == number_literal) )) (compound_statement "{\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);\n            }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[1].offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8[1].offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8[1].offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8[1].offset])" identifier (argument_list "(local_c4[pPVar8[1].offset])" ( (subscript_expression "local_c4[pPVar8[1].offset]" identifier [ (field_expression "pPVar8[1].offset" (subscript_expression "pPVar8[1]" identifier [ number_literal ]) . field_identifier) ]) )))))) ;) }) (else_clause "else if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }" else (if_statement "if (uVar30 == 2) {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }\n            else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }" if (parenthesized_expression "(uVar30 == 2)" ( (binary_expression "uVar30 == 2" identifier == number_literal) )) (compound_statement "{\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);\n            }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8[2].offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8[2].offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8[2].offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8[2].offset])" identifier (argument_list "(local_c4[pPVar8[2].offset])" ( (subscript_expression "local_c4[pPVar8[2].offset]" identifier [ (field_expression "pPVar8[2].offset" (subscript_expression "pPVar8[2]" identifier [ number_literal ]) . field_identifier) ]) )))))) ;) }) (else_clause "else {\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }" else (compound_statement "{\n              local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);\n            }" { (expression_statement "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset]);" (assignment_expression "local_64 = (uint)(longlong)ROUND(local_c4[pPVar8->offset])" identifier = (cast_expression "(uint)(longlong)ROUND(local_c4[pPVar8->offset])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(local_c4[pPVar8->offset])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(local_c4[pPVar8->offset])" identifier (argument_list "(local_c4[pPVar8->offset])" ( (subscript_expression "local_c4[pPVar8->offset]" identifier [ (field_expression "pPVar8->offset" identifier -> field_identifier) ]) )))))) ;) }))))) (expression_statement "local_104 = (ulonglong)local_64;" (assignment_expression "local_104 = (ulonglong)local_64" identifier = (cast_expression "(ulonglong)local_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "cbcr[iVar33] = (double)local_104;" (assignment_expression "cbcr[iVar33] = (double)local_104" (subscript_expression "cbcr[iVar33]" identifier [ identifier ]) = (cast_expression "(double)local_104" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != 4)" ( (binary_expression "iVar33 != 4" identifier != number_literal) )) ;) (expression_statement "local_a8 = local_a8 + 4;" (assignment_expression "local_a8 = local_a8 + 4" identifier = (binary_expression "local_a8 + 4" identifier + number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "iStack_b8 = 0;" (assignment_expression "iStack_b8 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) {\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar30 = 0;\n            if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_bc = uVar20 - 1;\n            iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 < 0x41) {\n              uVar30 = uVar16;\n            }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar30 = uVar16;\n            }" { (expression_statement "uVar30 = uVar16;" (assignment_expression "uVar30 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar30 - 1);" (assignment_expression "bVar23 = (byte)(uVar30 - 1)" identifier = (call_expression "(byte)(uVar30 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar19 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar19 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (expression_statement "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" if (parenthesized_expression "((uVar30 - 1 & 0x20) != 0)" ( (binary_expression "(uVar30 - 1 & 0x20) != 0" (parenthesized_expression "(uVar30 - 1 & 0x20)" ( (binary_expression "uVar30 - 1 & 0x20" (binary_expression "uVar30 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) })) (expression_statement "local_bc = uVar20 - 1;" (assignment_expression "local_bc = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0);" (assignment_expression "iStack_b8 = (uVar21 - 1) + (uint)(uVar20 != 0)" identifier = (binary_expression "(uVar21 - 1) + (uint)(uVar20 != 0)" (parenthesized_expression "(uVar21 - 1)" ( (binary_expression "uVar21 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar20 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < cbcr[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }" if (parenthesized_expression "(0.0 < cbcr[1])" ( (binary_expression "0.0 < cbcr[1]" number_literal < (subscript_expression "cbcr[1]" identifier [ number_literal ])) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;\n            if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[1]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[1]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[1])" ( (binary_expression "(double)fVar1 * cbcr[1]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[1]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar4 = dVar4 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }\n            }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n              }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                local_b4 = (longlong)ROUND(dVar4);\n              }" else (compound_statement "{\n                local_b4 = (longlong)ROUND(dVar4);\n              }" { (expression_statement "local_b4 = (longlong)ROUND(dVar4);" (assignment_expression "local_b4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar30 == 0) {\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n            (quantum_info->state).bits = 8;\n            uVar30 = 8;\n          }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(cbcr[0])) goto LAB_00155924;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(cbcr[0])) goto LAB_00155924;" if (parenthesized_expression "(!NAN(cbcr[0]))" ( (unary_expression "!NAN(cbcr[0])" ! (call_expression "NAN(cbcr[0])" identifier (argument_list "(cbcr[0])" ( (subscript_expression "cbcr[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto LAB_00155924;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_0015590b:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);" do (compound_statement "{\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }\n              uVar30 = (quantum_info->state).bits;\n            }" { (while_statement "while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_0015590b;\n              }" { (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = uVar16;\n                }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar16 - uVar21;" (assignment_expression "uVar20 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }" if (parenthesized_expression "(-1 < (int)uVar20)" ( (binary_expression "-1 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar16 = uVar20;\n                }" { (expression_statement "uVar16 = uVar20;" (assignment_expression "uVar16 = uVar20" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_b4 >> bVar29" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar29" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" { (expression_statement "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 != 0) break;" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 1) goto LAB_0015590b;" if (parenthesized_expression "((int)uVar20 < 1)" ( (binary_expression "(int)uVar20 < 1" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0015590b;" goto statement_identifier ;)) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(0 < (int)uVar20)" ( (binary_expression "0 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_0015590b:\n            uVar16 = quantum_info->depth;" statement_identifier : (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;)) (if_statement "if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(cbcr[0]))" ( (call_expression "NAN(cbcr[0])" identifier (argument_list "(cbcr[0])" ( (subscript_expression "cbcr[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" else (compound_statement "{\nLAB_00155924:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00155924:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < cbcr[0])" ( (binary_expression "0.0 < cbcr[0]" number_literal < (subscript_expression "cbcr[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[0])" ( (binary_expression "(double)fVar1 * cbcr[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar4);" (assignment_expression "local_b4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(cbcr[2])) goto LAB_00155aac;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(cbcr[2])) goto LAB_00155aac;" if (parenthesized_expression "(!NAN(cbcr[2]))" ( (unary_expression "!NAN(cbcr[2])" ! (call_expression "NAN(cbcr[2])" identifier (argument_list "(cbcr[2])" ( (subscript_expression "cbcr[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto LAB_00155aac;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155a93:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);" do (compound_statement "{\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }\n              uVar30 = (quantum_info->state).bits;\n            }" { (while_statement "while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155a93;\n              }" { (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = uVar16;\n                }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar16 - uVar21;" (assignment_expression "uVar20 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }" if (parenthesized_expression "(-1 < (int)uVar20)" ( (binary_expression "-1 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar16 = uVar20;\n                }" { (expression_statement "uVar16 = uVar20;" (assignment_expression "uVar16 = uVar20" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_b4 >> bVar29" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar29" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" { (expression_statement "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 != 0) break;" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 1) goto LAB_00155a93;" if (parenthesized_expression "((int)uVar20 < 1)" ( (binary_expression "(int)uVar20 < 1" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00155a93;" goto statement_identifier ;)) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(0 < (int)uVar20)" ( (binary_expression "0 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00155a93:\n            uVar16 = quantum_info->depth;" statement_identifier : (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;)) (if_statement "if (NAN(cbcr[2])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(cbcr[2]))" ( (call_expression "NAN(cbcr[2])" identifier (argument_list "(cbcr[2])" ( (subscript_expression "cbcr[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" else (compound_statement "{\nLAB_00155aac:\n              local_b4 = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00155aac:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < cbcr[2])" ( (binary_expression "0.0 < cbcr[2]" number_literal < (subscript_expression "cbcr[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[2])" ( (binary_expression "(double)fVar1 * cbcr[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar4);" (assignment_expression "local_b4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_74 = image->number_channels;\n            if (!NAN(cbcr[3])) goto LAB_00155c3d;\n            local_b4 = 0;\n          }" { (expression_statement "local_74 = image->number_channels;" (assignment_expression "local_74 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (if_statement "if (!NAN(cbcr[3])) goto LAB_00155c3d;" if (parenthesized_expression "(!NAN(cbcr[3]))" ( (unary_expression "!NAN(cbcr[3])" ! (call_expression "NAN(cbcr[3])" identifier (argument_list "(cbcr[3])" ( (subscript_expression "cbcr[3]" identifier [ number_literal ]) )))) )) (goto_statement "goto LAB_00155c3d;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155c13:\n            local_74 = image->number_channels;\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);" do (compound_statement "{\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }\n              uVar30 = (quantum_info->state).bits;\n            }" { (while_statement "while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155c13;\n              }" { (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = uVar16;\n                }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar16 - uVar21;" (assignment_expression "uVar20 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }" if (parenthesized_expression "(-1 < (int)uVar20)" ( (binary_expression "-1 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar16 = uVar20;\n                }" { (expression_statement "uVar16 = uVar20;" (assignment_expression "uVar16 = uVar20" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_b4 >> bVar29" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar29" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" { (expression_statement "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 != 0) break;" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 1) goto LAB_00155c13;" if (parenthesized_expression "((int)uVar20 < 1)" ( (binary_expression "(int)uVar20 < 1" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00155c13;" goto statement_identifier ;)) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(0 < (int)uVar20)" ( (binary_expression "0 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00155c13:\n            local_74 = image->number_channels;" statement_identifier : (expression_statement "local_74 = image->number_channels;" (assignment_expression "local_74 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;)) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (NAN(cbcr[3])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(cbcr[3]))" ( (call_expression "NAN(cbcr[3])" identifier (argument_list "(cbcr[3])" ( (subscript_expression "cbcr[3]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" else (compound_statement "{\nLAB_00155c3d:\n              local_b4 = 0;\n              if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00155c3d:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < cbcr[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < cbcr[3])" ( (binary_expression "0.0 < cbcr[3]" number_literal < (subscript_expression "cbcr[3]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[3]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[3]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[3])" ( (binary_expression "(double)fVar1 * cbcr[3]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[3]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar4);" (assignment_expression "local_b4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(cbcr[0])) goto LAB_00155dc3;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(cbcr[0])) goto LAB_00155dc3;" if (parenthesized_expression "(!NAN(cbcr[0]))" ( (unary_expression "!NAN(cbcr[0])" ! (call_expression "NAN(cbcr[0])" identifier (argument_list "(cbcr[0])" ( (subscript_expression "cbcr[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto LAB_00155dc3;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155db1:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);" do (compound_statement "{\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }\n              uVar30 = (quantum_info->state).bits;\n            }" { (while_statement "while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155db1;\n              }" { (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = uVar16;\n                }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar16 - uVar21;" (assignment_expression "uVar20 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }" if (parenthesized_expression "(-1 < (int)uVar20)" ( (binary_expression "-1 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar16 = uVar20;\n                }" { (expression_statement "uVar16 = uVar20;" (assignment_expression "uVar16 = uVar20" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_b4 >> bVar29" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar29" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" { (expression_statement "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 != 0) break;" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 1) goto LAB_00155db1;" if (parenthesized_expression "((int)uVar20 < 1)" ( (binary_expression "(int)uVar20 < 1" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00155db1;" goto statement_identifier ;)) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(0 < (int)uVar20)" ( (binary_expression "0 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00155db1:\n            uVar16 = quantum_info->depth;" statement_identifier : (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;)) (if_statement "if (NAN(cbcr[0])) {\n              local_b4 = 0;\n            }\n            else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(cbcr[0]))" ( (call_expression "NAN(cbcr[0])" identifier (argument_list "(cbcr[0])" ( (subscript_expression "cbcr[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" else (compound_statement "{\nLAB_00155dc3:\n              local_b4 = 0;\n              if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00155dc3:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < cbcr[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < cbcr[0])" ( (binary_expression "0.0 < cbcr[0]" number_literal < (subscript_expression "cbcr[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[0])" ( (binary_expression "(double)fVar1 * cbcr[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar4);" (assignment_expression "local_b4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              (quantum_info->state).bits = 8;\n              uVar30 = 8;\n            }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar16 < 1) {\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(cbcr[2])) goto LAB_00155f45;\n            local_fc = 0;\n            uVar21 = uVar16;\n          }" { (if_statement "if (!NAN(cbcr[2])) goto LAB_00155f45;" if (parenthesized_expression "(!NAN(cbcr[2]))" ( (unary_expression "!NAN(cbcr[2])" ! (call_expression "NAN(cbcr[2])" identifier (argument_list "(cbcr[2])" ( (subscript_expression "cbcr[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto LAB_00155f45;" goto statement_identifier ;)) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);\nLAB_00155f33:\n            uVar16 = quantum_info->depth;\n            if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }\n            uVar21 = uVar16;\n            if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            } while (0 < (int)uVar20);" do (compound_statement "{\n              while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }\n              uVar30 = (quantum_info->state).bits;\n            }" { (while_statement "while( true ) {\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar21 = uVar30;\n                if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }\n                uVar20 = uVar16 - uVar21;\n                uVar16 = 0;\n                if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }\n                if (uVar30 == 8) {\n                  *pixels = 0;\n                }\n                uVar30 = uVar30 - uVar21;\n                (quantum_info->state).bits = uVar30;\n                bVar29 = (byte)uVar16 & 0x1f;\n                uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;\n                if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }\n                bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n                if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar30 != 0) break;\n                pixels = pixels + 1;\n                (quantum_info->state).bits = 8;\n                uVar30 = 8;\n                if ((int)uVar20 < 1) goto LAB_00155f33;\n              }" { (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n                  uVar21 = uVar16;\n                }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n                  uVar21 = uVar16;\n                }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar20 = uVar16 - uVar21;" (assignment_expression "uVar20 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar20) {\n                  uVar16 = uVar20;\n                }" if (parenthesized_expression "(-1 < (int)uVar20)" ( (binary_expression "-1 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar16 = uVar20;\n                }" { (expression_statement "uVar16 = uVar20;" (assignment_expression "uVar16 = uVar20" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_b4 >> bVar29 | local_b4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_b4 >> bVar29" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar29" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);\n                }" { (expression_statement "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 != 0) break;" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar30 = 8;" (assignment_expression "uVar30 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 1) goto LAB_00155f33;" if (parenthesized_expression "((int)uVar20 < 1)" ( (binary_expression "(int)uVar20 < 1" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00155f33;" goto statement_identifier ;)) })) (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(0 < (int)uVar20)" ( (binary_expression "0 < (int)uVar20" number_literal < (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "LAB_00155f33:\n            uVar16 = quantum_info->depth;" statement_identifier : (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;)) (if_statement "if (NAN(cbcr[2])) {\n              local_fc = 0;\n            }\n            else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(cbcr[2]))" ( (call_expression "NAN(cbcr[2])" identifier (argument_list "(cbcr[2])" ( (subscript_expression "cbcr[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_fc = 0;\n            }" { (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }" else (compound_statement "{\nLAB_00155f45:\n              local_fc = 0;\n              if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }\n            }" { (labeled_statement "LAB_00155f45:\n              local_fc = 0;" statement_identifier : (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < cbcr[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < cbcr[2])" ( (binary_expression "0.0 < cbcr[2]" number_literal < (subscript_expression "cbcr[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_fc = -1;" (assignment_expression "local_fc = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * cbcr[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * cbcr[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * cbcr[2])" ( (binary_expression "(double)fVar1 * cbcr[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "cbcr[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_fc = (MagickSizeType)ROUND(dVar4);\n                  }" { (expression_statement "local_fc = (MagickSizeType)ROUND(dVar4);" (assignment_expression "local_fc = (MagickSizeType)ROUND(dVar4)" identifier = (cast_expression "(MagickSizeType)ROUND(dVar4)" ( (type_descriptor "MagickSizeType" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) }))) (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) (if_statement "if (uVar30 == 0) {\n              (quantum_info->state).bits = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              (quantum_info->state).bits = 8;\n            }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar21) {\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar30 = (quantum_info->state).bits;\n            uVar20 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }\n            uVar21 = uVar16 - uVar20;\n            uVar16 = 0;\n            if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar20;\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" { (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar20 = uVar30;" (assignment_expression "uVar20 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n              uVar20 = uVar16;\n            }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n              uVar20 = uVar16;\n            }" { (expression_statement "uVar20 = uVar16;" (assignment_expression "uVar20 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar21 = uVar16 - uVar20;" (assignment_expression "uVar21 = uVar16 - uVar20" identifier = (binary_expression "uVar16 - uVar20" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar21) {\n              uVar16 = uVar21;\n            }" if (parenthesized_expression "(-1 < (int)uVar21)" ( (binary_expression "-1 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar16 = uVar21;\n            }" { (expression_statement "uVar16 = uVar21;" (assignment_expression "uVar16 = uVar21" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n              *pixels = 0;\n            }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n              *pixels = 0;\n            }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar20;" (assignment_expression "uVar30 = uVar30 - uVar20" identifier = (binary_expression "uVar30 - uVar20" identifier - identifier)) ;) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_fc >> bVar29 | local_fc._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_fc >> bVar29" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_fc._4_4_ << 0x20 - bVar29" (field_expression "local_fc._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" { (expression_statement "uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar19 = local_fc._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_fc._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_fc._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar20 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar20 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar20 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar20 & 0x1f)" ( (binary_expression "(byte)uVar20 & 0x1f" (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar29 = 0;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_c4 = local_c4 + local_74 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + local_74 + image->number_channels" identifier = (binary_expression "local_c4 + local_74 + image->number_channels" (binary_expression "local_c4 + local_74" identifier + identifier) + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (if_statement "if (local_a8 == (uVar32 >> 1) * 4 + 4) break;" if (parenthesized_expression "(local_a8 == (uVar32 >> 1) * 4 + 4)" ( (binary_expression "local_a8 == (uVar32 >> 1) * 4 + 4" identifier == (binary_expression "(uVar32 >> 1) * 4 + 4" (binary_expression "(uVar32 >> 1) * 4" (parenthesized_expression "(uVar32 >> 1)" ( (binary_expression "uVar32 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case CMYKAQuantum:\n_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4896:\n      ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportCMYKAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case CMYKOQuantum:\n_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4897:\n      ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportCMYKOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case CMYKQuantum:\n_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4895:\n      ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportCMYKQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case CyanQuantum:" case identifier :) (case_statement "case RedQuantum:\n_L5026:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;" case identifier : (labeled_statement "_L5026:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbaa;\n        goto LAB_00159158;\n      }" { (expression_statement "pcVar34 = "ExportRedQuantum";" (assignment_expression "pcVar34 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xbaa;" (assignment_expression "uVar16 = 0xbaa" identifier = number_literal) ;) (goto_statement "goto LAB_00159158;" goto statement_identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportRedQuantum";\n        uVar16 = 0xbab;\n        goto LAB_00159135;\n      }" { (expression_statement "pcVar34 = "ExportRedQuantum";" (assignment_expression "pcVar34 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xbab;" (assignment_expression "uVar16 = 0xbab" identifier = number_literal) ;) (goto_statement "goto LAB_00159135;" goto statement_identifier ;) })) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x10)" ( (binary_expression "uVar32 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]));" (assignment_expression "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]))" identifier (argument_list "((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]))" ( (cast_expression "(float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset])" ( (binary_expression "(longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map->offset]" (cast_expression "(longdouble)dVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)local_c4[image->channel_map->offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]))) ))) )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              dVar4 = local_c4[image->channel_map->offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "dVar4 = local_c4[image->channel_map->offset];" (assignment_expression "dVar4 = local_c4[image->channel_map->offset]" identifier = (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) ;) (if_statement "if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "(dVar4 <= 0.0)" ( (binary_expression "dVar4 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar22 = 0;\n                bVar29 = 0;\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar4)" ( (binary_expression "(double)DAT_0029f710 <= dVar4" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }" { (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (compound_statement "{\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" { (expression_statement "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 < 0x11)" ( (binary_expression "uVar32 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" if (parenthesized_expression "(uVar32 == 8)" ( (binary_expression "uVar32 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map->offset]) {\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map->offset])" ( (binary_expression "0.0 < local_c4[image->channel_map->offset]" number_literal < (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) )) (compound_statement "{\n                dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar4 = local_c4[image->channel_map->offset] / (double)DAT_002a7ff0" identifier = (binary_expression "local_c4[image->channel_map->offset] / (double)DAT_002a7ff0" (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_002a7ff4)" ( (binary_expression "dVar4 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" else (compound_statement "{\nLAB_0015742f:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" { (labeled_statement "LAB_0015742f:\n          local_cc = 0;" statement_identifier : (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar32 != 0) {\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0015539d:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" { (labeled_statement "LAB_0015539d:\n            uVar30 = 0;" statement_identifier : (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;)) (if_statement "if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }" if (parenthesized_expression "(uVar32 < 0x41)" ( (binary_expression "uVar32 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar30 = uVar32;\n            }" { (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar30 - 1);" (assignment_expression "bVar23 = (byte)(uVar30 - 1)" identifier = (call_expression "(byte)(uVar30 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar19 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar19 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (expression_statement "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" if (parenthesized_expression "((uVar30 - 1 & 0x20) != 0)" ( (binary_expression "(uVar30 - 1 & 0x20) != 0" (parenthesized_expression "(uVar30 - 1 & 0x20)" ( (binary_expression "uVar30 - 1 & 0x20" (binary_expression "uVar30 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) })) (expression_statement "local_cc = uVar20 - 1;" (assignment_expression "local_cc = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);" (assignment_expression "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0)" identifier = (binary_expression "(uVar21 - 1) + (uint)(uVar20 != 0)" (parenthesized_expression "(uVar21 - 1)" ( (binary_expression "uVar21 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar20 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" { (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map->offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map->offset])" ( (binary_expression "0.0 < local_c4[image->channel_map->offset]" number_literal < (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,local_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,local_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,local_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,local_cc)" identifier (argument_list "(iStack_c8,local_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_e4 = -1;" (assignment_expression "local_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * local_c4[image->channel_map->offset]) /\n                        (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * local_c4[image->channel_map->offset])" ( (binary_expression "(double)fVar1 * local_c4[image->channel_map->offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_e4 = (longlong)ROUND(dVar4);" (assignment_expression "local_e4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n                (quantum_info->state).bits = 8;\n              }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar30)" ( (binary_expression "0 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" { (expression_statement "uVar21 = (quantum_info->state).bits;" (assignment_expression "uVar21 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar20 = uVar21;" (assignment_expression "uVar20 = uVar21" identifier = identifier) ;) (if_statement "if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }" if (parenthesized_expression "(uVar32 <= uVar21)" ( (binary_expression "uVar32 <= uVar21" identifier <= identifier) )) (compound_statement "{\n                  uVar20 = uVar32;\n                }" { (expression_statement "uVar20 = uVar32;" (assignment_expression "uVar20 = uVar32" identifier = identifier) ;) })) (expression_statement "uVar30 = uVar32 - uVar20;" (assignment_expression "uVar30 = uVar32 - uVar20" identifier = (binary_expression "uVar32 - uVar20" identifier - identifier)) ;) (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }" if (parenthesized_expression "(-1 < (int)uVar30)" ( (binary_expression "-1 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar32 = uVar30;\n                }" { (expression_statement "uVar32 = uVar30;" (assignment_expression "uVar32 = uVar30" identifier = identifier) ;) })) (if_statement "if (uVar21 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar21 == 8)" ( (binary_expression "uVar21 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = uVar21 - uVar20;" (assignment_expression "uVar21 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar32 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar32 & 0x1f" identifier = (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_e4 >> bVar29" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_e4._4_4_ << 0x20 - bVar29" (field_expression "local_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" if (parenthesized_expression "((uVar32 & 0x20) != 0)" ( (binary_expression "(uVar32 & 0x20) != 0" (parenthesized_expression "(uVar32 & 0x20)" ( (binary_expression "uVar32 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" { (expression_statement "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);" (assignment_expression "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" identifier = (binary_expression "local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" (field_expression "local_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar32 & 0x1f)" ( (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar21;" (assignment_expression "(quantum_info->state).bits = uVar21" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar20 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar20 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar20 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar20 & 0x1f)" ( (binary_expression "(byte)uVar20 & 0x1f" (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if (local_d4 == (uint)local_fc) break;" if (parenthesized_expression "(local_d4 == (uint)local_fc)" ( (binary_expression "local_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) })) }))) }) (else_clause "else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x20)" ( (binary_expression "uVar32 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (expression_statement "fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar1 = (float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5" identifier = (binary_expression "(float)local_c4[image->channel_map->offset] * (float)dVar4 + (float)dVar5" (binary_expression "(float)local_c4[image->channel_map->offset] * (float)dVar4" (cast_expression "(float)local_c4[image->channel_map->offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ])) * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = SUB41(fVar1,0);" (assignment_expression "*pixels = SUB41(fVar1,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar1,0);" (assignment_expression "pixels[3] = SUB41(fVar1,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (if_statement "if (local_c4[image->channel_map->offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" if (parenthesized_expression "(local_c4[image->channel_map->offset] <= 0.0)" ( (binary_expression "local_c4[image->channel_map->offset] <= 0.0" (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) <= number_literal) )) (compound_statement "{\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec;" (assignment_expression "dVar4 = local_c4[image->channel_map->offset] * (double)DAT_002a7fec" identifier = (binary_expression "local_c4[image->channel_map->offset] * (double)DAT_002a7fec" (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }" { (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" else (compound_statement "{\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar32 != 0x40) goto LAB_0015742f;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar32 != 0x40) goto LAB_0015742f;" if (parenthesized_expression "(uVar32 != 0x40)" ( (binary_expression "uVar32 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0015742f;" goto statement_identifier ;)) (if_statement "if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_0015539d;" if (parenthesized_expression "(quantum_info->format != FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format != FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0015539d;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          }" { (expression_statement "dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5;" (assignment_expression "dVar6 = local_c4[image->channel_map->offset] * dVar4 + dVar5" identifier = (binary_expression "local_c4[image->channel_map->offset] * dVar4 + dVar5" (binary_expression "local_c4[image->channel_map->offset] * dVar4" (subscript_expression "local_c4[image->channel_map->offset]" identifier [ (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier) ]) * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "local_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "local_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }" { (expression_statement "*pixels = SUB81(dVar6,0);" (assignment_expression "*pixels = SUB81(dVar6,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar25;" (assignment_expression "pixels[4] = bVar25" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_cc;" (assignment_expression "pixels[2] = (byte)local_cc" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_d4;" (assignment_expression "pixels[3] = (byte)local_d4" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_e4;" (assignment_expression "pixels[6] = (byte)local_e4" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[7] = local_ec;" (assignment_expression "pixels[7] = local_ec" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" else (compound_statement "{\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar6,0);" (assignment_expression "pixels[7] = SUB81(dVar6,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_d4;" (assignment_expression "pixels[4] = (byte)local_d4" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*pixels = local_ec;" (assignment_expression "*pixels = local_ec" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[5] = (byte)local_cc;" (assignment_expression "pixels[5] = (byte)local_cc" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_e4;" (assignment_expression "pixels[1] = (byte)local_e4" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case GrayAlphaQuantum:\n_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4981:\n      ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportGrayAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case GrayQuantum:\n_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L4980:\n      ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportGrayQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case GreenQuantum:" case identifier :) (case_statement "case MagentaQuantum:\n_L4982:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }\n      uVar32 = quantum_info->depth;\n      if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }\n      break;" case identifier : (labeled_statement "_L4982:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96d;\n        goto LAB_00159158;\n      }" { (expression_statement "pcVar34 = "ExportGreenQuantum";" (assignment_expression "pcVar34 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x96d;" (assignment_expression "uVar16 = 0x96d" identifier = number_literal) ;) (goto_statement "goto LAB_00159158;" goto statement_identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportGreenQuantum";\n        uVar16 = 0x96e;\n        goto LAB_00159135;\n      }" { (expression_statement "pcVar34 = "ExportGreenQuantum";" (assignment_expression "pcVar34 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0x96e;" (assignment_expression "uVar16 = 0x96e" identifier = number_literal) ;) (goto_statement "goto LAB_00159135;" goto statement_identifier ;) })) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (if_statement "if (uVar32 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x10)" ( (binary_expression "uVar32 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]));" (assignment_expression "uVar15 = SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]))" identifier = (call_expression "SinglePrecisionToHalf\n                                 ((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]))" identifier (argument_list "((float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]))" ( (cast_expression "(float)((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset])" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset])" ( (binary_expression "(longdouble)dVar4 *\n                                         (longdouble)local_c4[image->channel_map[1].offset]" (cast_expression "(longdouble)dVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (cast_expression "(longdouble)local_c4[image->channel_map[1].offset]" ( (type_descriptor "longdouble" type_identifier) ) (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ))) )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              dVar4 = local_c4[image->channel_map[1].offset];\n              if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "dVar4 = local_c4[image->channel_map[1].offset];" (assignment_expression "dVar4 = local_c4[image->channel_map[1].offset]" identifier = (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) ;) (if_statement "if (dVar4 <= 0.0) {\n                iVar22 = 0;\n                bVar29 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "(dVar4 <= 0.0)" ( (binary_expression "dVar4 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar22 = 0;\n                bVar29 = 0;\n              }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar4) {\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }\n              else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar4)" ( (binary_expression "(double)DAT_0029f710 <= dVar4" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar22 = -1;\n                bVar29 = 0xff;\n              }" { (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" else (compound_statement "{\n                iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);\n                bVar29 = (byte)((uint)iVar22 >> 8);\n              }" { (expression_statement "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 < 0x11) {\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }\n      else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 < 0x11)" ( (binary_expression "uVar32 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar32 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" if (parenthesized_expression "(uVar32 == 8)" ( (binary_expression "uVar32 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }\n              iVar33 = iVar33 + 1;\n              *pixels = bVar29;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map[1].offset]) {\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map[1].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[1].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0;" (assignment_expression "dVar4 = local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0" identifier = (binary_expression "local_c4[image->channel_map[1].offset] / (double)DAT_002a7ff0" (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar4 < (double)DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_002a7ff4)" ( (binary_expression "dVar4 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" else (compound_statement "{\nLAB_0015755d:\n          local_cc = 0;\n          iStack_c8 = 0;\n          if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }\n        }" { (labeled_statement "LAB_0015755d:\n          local_cc = 0;" statement_identifier : (expression_statement "local_cc = 0;" (assignment_expression "local_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar32 != 0) {\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" if (parenthesized_expression "(uVar32 != 0)" ( (binary_expression "uVar32 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001550c5:\n            uVar30 = 0;\n            if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }\n            bVar23 = (byte)(uVar30 - 1);\n            bVar29 = bVar23 & 0x1f;\n            uVar19 = 2 << (bVar23 & 0x1f);\n            uVar20 = uVar19;\n            uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n            if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }\n            local_cc = uVar20 - 1;\n            iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);\n          }" { (labeled_statement "LAB_001550c5:\n            uVar30 = 0;" statement_identifier : (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;)) (if_statement "if (uVar32 < 0x41) {\n              uVar30 = uVar32;\n            }" if (parenthesized_expression "(uVar32 < 0x41)" ( (binary_expression "uVar32 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar30 = uVar32;\n            }" { (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar30 - 1);" (assignment_expression "bVar23 = (byte)(uVar30 - 1)" identifier = (call_expression "(byte)(uVar30 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar19 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar19 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (expression_statement "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar21 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar30 - 1 & 0x20) != 0) {\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" if (parenthesized_expression "((uVar30 - 1 & 0x20) != 0)" ( (binary_expression "(uVar30 - 1 & 0x20) != 0" (parenthesized_expression "(uVar30 - 1 & 0x20)" ( (binary_expression "uVar30 - 1 & 0x20" (binary_expression "uVar30 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar21 = uVar19;\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = uVar19;" (assignment_expression "uVar21 = uVar19" identifier = identifier) ;) })) (expression_statement "local_cc = uVar20 - 1;" (assignment_expression "local_cc = uVar20 - 1" identifier = (binary_expression "uVar20 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0);" (assignment_expression "iStack_c8 = (uVar21 - 1) + (uint)(uVar20 != 0)" identifier = (binary_expression "(uVar21 - 1) + (uint)(uVar20 != 0)" (parenthesized_expression "(uVar21 - 1)" ( (binary_expression "uVar21 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar20 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            local_d4 = 0;\n            while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }\n          }" { (expression_statement "local_d4 = 0;" (assignment_expression "local_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              local_e4 = 0;\n              if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }\n              uVar30 = uVar32;\n              if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }\n              while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }\n              local_d4 = local_d4 + 1;\n              pixels = pixels + quantum_info->pad;\n              local_c4 = local_c4 + image->number_channels;\n              if (local_d4 == (uint)local_fc) break;\n              uVar32 = quantum_info->depth;\n            }" { (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < local_c4[image->channel_map[1].offset]) {\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < local_c4[image->channel_map[1].offset])" ( (binary_expression "0.0 < local_c4[image->channel_map[1].offset]" number_literal < (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,local_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_e4 = -1;\n                dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;\n                if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,local_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,local_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,local_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,local_cc)" identifier (argument_list "(iStack_c8,local_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_e4 = -1;" (assignment_expression "local_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710;" (assignment_expression "dVar4 = ((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * local_c4[image->channel_map[1].offset]) /\n                        (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * local_c4[image->channel_map[1].offset])" ( (binary_expression "(double)fVar1 * local_c4[image->channel_map[1].offset]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar4 < (double)DAT_0029f714) {\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" if (parenthesized_expression "(dVar4 < (double)DAT_0029f714)" ( (binary_expression "dVar4 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar4 = dVar4 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }\n                }" { (expression_statement "dVar4 = dVar4 + (double)DAT_0029f124;" (assignment_expression "dVar4 = dVar4 + (double)DAT_0029f124" identifier = (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar4) {\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }\n                  else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar4)" ( (binary_expression "(double)DAT_0029f134 <= dVar4" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar3 >> 0x20);\n                    local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar4 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 - (double)DAT_0029f134)" identifier (argument_list "(dVar4 - (double)DAT_0029f134)" ( (binary_expression "dVar4 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar3 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar3 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3);" (assignment_expression "local_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar3)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar3)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" else (compound_statement "{\n                    local_e4 = (longlong)ROUND(dVar4);\n                  }" { (expression_statement "local_e4 = (longlong)ROUND(dVar4);" (assignment_expression "local_e4 = (longlong)ROUND(dVar4)" identifier = (cast_expression "(longlong)ROUND(dVar4)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar30 = uVar32;" (assignment_expression "uVar30 = uVar32" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n                (quantum_info->state).bits = 8;\n              }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n                (quantum_info->state).bits = 8;\n              }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar30) {\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar30)" ( (binary_expression "0 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar21 = (quantum_info->state).bits;\n                uVar20 = uVar21;\n                if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }\n                uVar30 = uVar32 - uVar20;\n                uVar32 = 0;\n                if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }\n                if (uVar21 == 8) {\n                  *pixels = 0;\n                }\n                uVar21 = uVar21 - uVar20;\n                bVar29 = (byte)uVar32 & 0x1f;\n                uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;\n                if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }\n                (quantum_info->state).bits = uVar21;\n                bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));\n                if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }\n                *pixels = *pixels | bVar29;\n                if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }\n              }" { (expression_statement "uVar21 = (quantum_info->state).bits;" (assignment_expression "uVar21 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar20 = uVar21;" (assignment_expression "uVar20 = uVar21" identifier = identifier) ;) (if_statement "if (uVar32 <= uVar21) {\n                  uVar20 = uVar32;\n                }" if (parenthesized_expression "(uVar32 <= uVar21)" ( (binary_expression "uVar32 <= uVar21" identifier <= identifier) )) (compound_statement "{\n                  uVar20 = uVar32;\n                }" { (expression_statement "uVar20 = uVar32;" (assignment_expression "uVar20 = uVar32" identifier = identifier) ;) })) (expression_statement "uVar30 = uVar32 - uVar20;" (assignment_expression "uVar30 = uVar32 - uVar20" identifier = (binary_expression "uVar32 - uVar20" identifier - identifier)) ;) (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar30) {\n                  uVar32 = uVar30;\n                }" if (parenthesized_expression "(-1 < (int)uVar30)" ( (binary_expression "-1 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar32 = uVar30;\n                }" { (expression_statement "uVar32 = uVar30;" (assignment_expression "uVar32 = uVar30" identifier = identifier) ;) })) (if_statement "if (uVar21 == 8) {\n                  *pixels = 0;\n                }" if (parenthesized_expression "(uVar21 == 8)" ( (binary_expression "uVar21 == 8" identifier == number_literal) )) (compound_statement "{\n                  *pixels = 0;\n                }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar21 = uVar21 - uVar20;" (assignment_expression "uVar21 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar32 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar32 & 0x1f" identifier = (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar19 = (uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_e4 >> bVar29 | local_e4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_e4 >> bVar29" (cast_expression "(uint)local_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_e4._4_4_ << 0x20 - bVar29" (field_expression "local_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 & 0x20) != 0) {\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" if (parenthesized_expression "((uVar32 & 0x20) != 0)" ( (binary_expression "(uVar32 & 0x20) != 0" (parenthesized_expression "(uVar32 & 0x20)" ( (binary_expression "uVar32 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);\n                }" { (expression_statement "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f);" (assignment_expression "uVar19 = local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" identifier = (binary_expression "local_e4._4_4_ >> ((byte)uVar32 & 0x1f)" (field_expression "local_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar32 & 0x1f)" ( (binary_expression "(byte)uVar32 & 0x1f" (cast_expression "(byte)uVar32" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar21;" (assignment_expression "(quantum_info->state).bits = uVar21" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19) << ((byte)uVar21 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar20 & 0x1f)) & uVar19)" ( (binary_expression "~(-1 << ((byte)uVar20 & 0x1f)) & uVar19" (unary_expression "~(-1 << ((byte)uVar20 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar20 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar20 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar20 & 0x1f)" ( (binary_expression "(byte)uVar20 & 0x1f" (cast_expression "(byte)uVar20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar21 & 0x20) != 0) {\n                  bVar29 = 0;\n                }" if (parenthesized_expression "((uVar21 & 0x20) != 0)" ( (binary_expression "(uVar21 & 0x20) != 0" (parenthesized_expression "(uVar21 & 0x20)" ( (binary_expression "uVar21 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar29 = 0;\n                }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar21 == 0) {\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" if (parenthesized_expression "(uVar21 == 0)" ( (binary_expression "uVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                  pixels = pixels + 1;\n                  (quantum_info->state).bits = 8;\n                }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "local_d4 = local_d4 + 1;" (assignment_expression "local_d4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if (local_d4 == (uint)local_fc) break;" if (parenthesized_expression "(local_d4 == (uint)local_fc)" ( (binary_expression "local_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar32 = quantum_info->depth;" (assignment_expression "uVar32 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) })) }))) }) (else_clause "else if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar32 == 0x20) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar32 == 0x20)" ( (binary_expression "uVar32 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            dVar4 = (quantum_info->state).inverse_scale;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;\n              bVar29 = (byte)((uint)fVar1 >> 8);\n              bVar25 = (byte)((uint)fVar1 >> 0x18);\n              bVar23 = (byte)((uint)fVar1 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (expression_statement "fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar1 = (float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5" identifier = (binary_expression "(float)local_c4[image->channel_map[1].offset] * (float)dVar4 + (float)dVar5" (binary_expression "(float)local_c4[image->channel_map[1].offset] * (float)dVar4" (cast_expression "(float)local_c4[image->channel_map[1].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB41(fVar1,0);\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = SUB41(fVar1,0);" (assignment_expression "*pixels = SUB41(fVar1,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar1,0);" (assignment_expression "pixels[3] = SUB41(fVar1,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 4;\n            }" { (if_statement "if (local_c4[image->channel_map[1].offset] <= 0.0) {\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }\n              else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" if (parenthesized_expression "(local_c4[image->channel_map[1].offset] <= 0.0)" ( (binary_expression "local_c4[image->channel_map[1].offset] <= 0.0" (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) <= number_literal) )) (compound_statement "{\n                local_64._0_1_ = 0;\n                bVar29 = 0;\n                bVar23 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;\n                if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }\n              }" { (expression_statement "dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec;" (assignment_expression "dVar4 = local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec" identifier = (binary_expression "local_c4[image->channel_map[1].offset] * (double)DAT_002a7fec" (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) {\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }\n                else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                  local_64._0_1_ = 0xff;\n                  bVar29 = 0xff;\n                  bVar23 = 0xff;\n                  bVar25 = 0xff;\n                }" { (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" else (compound_statement "{\n                  lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                  local_64._0_1_ = (byte)lVar3;\n                  bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                  bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                  bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }\n              else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)local_64;\n                pixels[1] = bVar29;\n                pixels[2] = bVar23;\n                pixels[3] = bVar25;\n              }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" else (compound_statement "{\n                *pixels = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = bVar29;\n                pixels[3] = (byte)local_64;\n              }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar32 != 0x40) goto LAB_0015755d;\n        if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar32 != 0x40) goto LAB_0015755d;" if (parenthesized_expression "(uVar32 != 0x40)" ( (binary_expression "uVar32 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0015755d;" goto statement_identifier ;)) (if_statement "if (quantum_info->format != FloatingPointQuantumFormat) goto LAB_001550c5;" if (parenthesized_expression "(quantum_info->format != FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format != FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_001550c5;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar4 = (quantum_info->state).inverse_scale;\n          iVar33 = 0;\n          dVar5 = quantum_info->minimum;\n          EVar12 = quantum_info->endian;\n          do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);\n        }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;\n            bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar23 = (byte)((ulonglong)dVar6 >> 8);\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x20);\n            local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            local_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }\n            iVar33 = iVar33 + 1;\n            local_c4 = local_c4 + image->number_channels;\n            pixels = pixels + quantum_info->pad + 8;\n          }" { (expression_statement "dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5;" (assignment_expression "dVar6 = local_c4[image->channel_map[1].offset] * dVar4 + dVar5" identifier = (binary_expression "local_c4[image->channel_map[1].offset] * dVar4 + dVar5" (binary_expression "local_c4[image->channel_map[1].offset] * dVar4" (subscript_expression "local_c4[image->channel_map[1].offset]" identifier [ (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]) * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "local_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "local_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "local_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }\n            else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n              *pixels = SUB81(dVar6,0);\n              pixels[4] = bVar25;\n              pixels[5] = bVar29;\n              pixels[1] = bVar23;\n              pixels[2] = (byte)local_cc;\n              pixels[3] = (byte)local_d4;\n              pixels[6] = (byte)local_e4;\n              pixels[7] = local_ec;\n            }" { (expression_statement "*pixels = SUB81(dVar6,0);" (assignment_expression "*pixels = SUB81(dVar6,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar25;" (assignment_expression "pixels[4] = bVar25" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_cc;" (assignment_expression "pixels[2] = (byte)local_cc" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_d4;" (assignment_expression "pixels[3] = (byte)local_d4" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_e4;" (assignment_expression "pixels[6] = (byte)local_e4" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[7] = local_ec;" (assignment_expression "pixels[7] = local_ec" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" else (compound_statement "{\n              pixels[2] = bVar29;\n              pixels[3] = bVar25;\n              pixels[7] = SUB81(dVar6,0);\n              pixels[4] = (byte)local_d4;\n              *pixels = local_ec;\n              pixels[5] = (byte)local_cc;\n              pixels[1] = (byte)local_e4;\n              pixels[6] = bVar23;\n            }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar6,0);" (assignment_expression "pixels[7] = SUB81(dVar6,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_d4;" (assignment_expression "pixels[4] = (byte)local_d4" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*pixels = local_ec;" (assignment_expression "*pixels = local_ec" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[5] = (byte)local_cc;" (assignment_expression "pixels[5] = (byte)local_cc" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_e4;" (assignment_expression "pixels[1] = (byte)local_e4" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case IndexAlphaQuantum:\n_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L5025:\n      ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportIndexAlphaQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case IndexQuantum:\n_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L5024:\n      ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportIndexQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case OpacityQuantum:\n_L5068:\n      dVar5 = DAT_002a8000;\n      dVar4 = _DAT_0029f148;\n      if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }\n      if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }\n      uVar16 = quantum_info->depth;\n      iVar33 = (uint)local_fc;\n      if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }\n      if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }\n      goto _L4734;" case identifier : (labeled_statement "_L5068:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar4 = _DAT_0029f148;" (assignment_expression "dVar4 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }" if (parenthesized_expression "(exception == (ExceptionInfo *)0x0)" ( (binary_expression "exception == (ExceptionInfo *)0x0" identifier == (cast_expression "(ExceptionInfo *)0x0" ( (type_descriptor "ExceptionInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb41;\n        goto LAB_00159158;\n      }" { (expression_statement "pcVar34 = "ExportOpacityQuantum";" (assignment_expression "pcVar34 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xb41;" (assignment_expression "uVar16 = 0xb41" identifier = number_literal) ;) (goto_statement "goto LAB_00159158;" goto statement_identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pcVar34 = "ExportOpacityQuantum";\n        uVar16 = 0xb42;\n        goto LAB_00159135;\n      }" { (expression_statement "pcVar34 = "ExportOpacityQuantum";" (assignment_expression "pcVar34 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar16 = 0xb42;" (assignment_expression "uVar16 = 0xb42" identifier = number_literal) ;) (goto_statement "goto LAB_00159135;" goto statement_identifier ;) })) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) (expression_statement "iVar33 = (uint)local_fc;" (assignment_expression "iVar33 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar16 == 0x10) {\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" if (parenthesized_expression "(uVar16 == 0x10)" ( (binary_expression "uVar16 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        goto _L4734;\n      }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = 0.0;\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }\n              uVar15 = SinglePrecisionToHalf(fVar1);\n              bVar29 = (byte)(uVar15 >> 8);\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }" if (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;\n              }" { (expression_statement "fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4;" (assignment_expression "fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4" identifier = (binary_expression "(DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) *\n                        (float)dVar4" (parenthesized_expression "(DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) )) * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar15 = SinglePrecisionToHalf(fVar1);" (assignment_expression "uVar15 = SinglePrecisionToHalf(fVar1)" identifier = (call_expression "SinglePrecisionToHalf(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar29 = (byte)(uVar15 >> 8);" (assignment_expression "bVar29 = (byte)(uVar15 >> 8)" identifier = (call_expression "(byte)(uVar15 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar15 >> 8)" ( (binary_expression "uVar15 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)uVar15;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)uVar15;" (assignment_expression "*pixels = (byte)uVar15" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)uVar15;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)uVar15;" (assignment_expression "pixels[1] = (byte)uVar15" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar15" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar33 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);\n          }" { (do_statement "do {\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              iVar22 = 0;\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }\n              if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 2;\n            }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 ) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }" if (parenthesized_expression "((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)\n                 )" ( (binary_expression "(image->channel_map[4].traits == BlendPixelTrait) &&\n                 (fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)" (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset], 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier = (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n                if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }\n              }" { (if_statement "if (DAT_0029f710 <= fVar1) {\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }\n                else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                  iVar22 = -1;\n                  bVar29 = 0xff;\n                }" { (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" else (compound_statement "{\n                  iVar22 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar29 = (byte)((uint)iVar22 >> 8);\n                }" { (expression_statement "iVar22 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar22 = (int)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(int)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "bVar29 = (byte)((uint)iVar22 >> 8);" (assignment_expression "bVar29 = (byte)((uint)iVar22 >> 8)" identifier = (call_expression "(byte)((uint)iVar22 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar22 >> 8)" ( (binary_expression "(uint)iVar22 >> 8" (cast_expression "(uint)iVar22" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) })) (if_statement "if (quantum_info->endian == LSBEndian) {\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }\n              else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                *pixels = (byte)iVar22;\n                pixels[1] = bVar29;\n              }" { (expression_statement "*pixels = (byte)iVar22;" (assignment_expression "*pixels = (byte)iVar22" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" else (compound_statement "{\n                *pixels = bVar29;\n                pixels[1] = (byte)iVar22;\n              }" { (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = (byte)iVar22;" (assignment_expression "pixels[1] = (byte)iVar22" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 2;" (assignment_expression "pixels = pixels + quantum_info->pad + 2" identifier = (binary_expression "pixels + quantum_info->pad + 2" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 < 0x11) {\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }\n      else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" if (parenthesized_expression "(uVar16 < 0x11)" ( (binary_expression "uVar16 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }\nLAB_0015768b:\n        local_dc = 0;\n        iStack_d8 = 0;\n        if (uVar16 != 0) goto LAB_00154e80;\n      }" { (if_statement "if (uVar16 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 8)" ( (binary_expression "uVar16 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar33 = 0;\n            do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n              bVar29 = 0;\n              if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *pixels = bVar29;\n              iVar33 = iVar33 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 1;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (if_statement "if ((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]))" ( (binary_expression "(image->channel_map[4].traits == BlendPixelTrait) &&\n                 (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) && (parenthesized_expression "(0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" ( (binary_expression "0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" number_literal < (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])))) ))) )) (compound_statement "{\n                fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;\n                bVar29 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" { (expression_statement "fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0;" (assignment_expression "fVar1 = (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0" identifier = (binary_expression "(DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]) /\n                        DAT_002a7ff0" (parenthesized_expression "(DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) )) / identifier)) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n                  bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" { (expression_statement "bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar29 = (byte)(short)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) )))))) ;) })) })) (expression_statement "*pixels = bVar29;" (assignment_expression "*pixels = bVar29" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 1;" (assignment_expression "pixels = pixels + quantum_info->pad + 1" identifier = (binary_expression "pixels + quantum_info->pad + 1" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_0015768b:\n        local_dc = 0;" statement_identifier : (expression_statement "local_dc = 0;" (assignment_expression "local_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar16 != 0) goto LAB_00154e80;" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00154e80;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" else (compound_statement "{\n        if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }\n        if (uVar16 != 0x40) goto LAB_0015768b;\n        if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }\nLAB_00154e80:\n        uVar32 = 0;\n        if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }\n        bVar23 = (byte)(uVar32 - 1);\n        bVar29 = bVar23 & 0x1f;\n        uVar20 = 2 << (bVar23 & 0x1f);\n        uVar21 = uVar20;\n        uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;\n        if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }\n        local_dc = uVar21 - 1;\n        iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);\n      }" { (if_statement "if (uVar16 == 0x20) {\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(uVar16 == 0x20)" ( (binary_expression "uVar16 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          goto _L4734;\n        }" { (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar33 = 0;\n              dVar4 = (quantum_info->state).inverse_scale;\n              dVar5 = quantum_info->minimum;\n              EVar12 = quantum_info->endian;\n              do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar4 + (float)dVar5;\n                bVar29 = (byte)((uint)fVar1 >> 8);\n                bVar25 = (byte)((uint)fVar1 >> 0x18);\n                bVar23 = (byte)((uint)fVar1 >> 0x10);\n                if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }\n                else {\n                  fVar1 = 0.0;\n                }" if (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                  fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];\n                }" { (expression_statement "fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset];" (assignment_expression "fVar1 = DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier = (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])))) ;) }) (else_clause "else {\n                  fVar1 = 0.0;\n                }" else (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar4 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar4 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar4 + (float)dVar5" (binary_expression "fVar1 * (float)dVar4" identifier * (cast_expression "(float)dVar4" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar29 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar29 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar23 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                  *pixels = SUB41(fVar1,0);\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = SUB41(fVar1,0);" (assignment_expression "*pixels = SUB41(fVar1,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = SUB41(fVar1,0);" (assignment_expression "pixels[3] = SUB41(fVar1,0)" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar33 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              } while (iVar33 != (uint)local_fc);" do (compound_statement "{\n                if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }\n                if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }\n                iVar33 = iVar33 + 1;\n                local_c4 = local_c4 + image->number_channels;\n                pixels = pixels + quantum_info->pad + 4;\n              }" { (if_statement "if ((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)) {\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0))" ( (binary_expression "(image->channel_map[4].traits != BlendPixelTrait) ||\n                   ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)" (parenthesized_expression "(image->channel_map[4].traits != BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits != BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) != identifier) )) || (parenthesized_expression "((double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0)" ( (binary_expression "(double)DAT_0029f710 - local_c4[image->channel_map[4].offset] <= 0.0" (binary_expression "(double)DAT_0029f710 - local_c4[image->channel_map[4].offset]" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) <= number_literal) ))) )) (compound_statement "{\n                  local_64._0_1_ = 0;\n                  bVar29 = 0;\n                  bVar23 = 0;\n                  bVar25 = 0;\n                }" { (expression_statement "local_64._0_1_ = 0;" (assignment_expression "local_64._0_1_ = 0" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;\n                  if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }\n                }" { (expression_statement "dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec;" (assignment_expression "dVar4 = ((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec" identifier = (binary_expression "((double)DAT_0029f710 - local_c4[image->channel_map[4].offset]) *\n                          (double)DAT_002a7fec" (parenthesized_expression "((double)DAT_0029f710 - local_c4[image->channel_map[4].offset])" ( (binary_expression "(double)DAT_0029f710 - local_c4[image->channel_map[4].offset]" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])) )) * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar4) {\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar4)" ( (binary_expression "dVar5 <= dVar4" identifier <= identifier) )) (compound_statement "{\n                    local_64._0_1_ = 0xff;\n                    bVar29 = 0xff;\n                    bVar23 = 0xff;\n                    bVar25 = 0xff;\n                  }" { (expression_statement "local_64._0_1_ = 0xff;" (assignment_expression "local_64._0_1_ = 0xff" (field_expression "local_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar29 = 0xff;" (assignment_expression "bVar29 = 0xff" identifier = number_literal) ;) (expression_statement "bVar23 = 0xff;" (assignment_expression "bVar23 = 0xff" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);\n                    local_64._0_1_ = (byte)lVar3;\n                    bVar29 = (byte)((ulonglong)lVar3 >> 8);\n                    bVar25 = (byte)((ulonglong)lVar3 >> 0x18);\n                    bVar23 = (byte)((ulonglong)lVar3 >> 0x10);\n                  }" { (expression_statement "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124);" (assignment_expression "lVar3 = (longlong)ROUND(dVar4 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar4 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar4 + (double)DAT_0029f124)" identifier (argument_list "(dVar4 + (double)DAT_0029f124)" ( (binary_expression "dVar4 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "local_64._0_1_ = (byte)lVar3;" (assignment_expression "local_64._0_1_ = (byte)lVar3" (field_expression "local_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar3" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)lVar3 >> 8);" (assignment_expression "bVar29 = (byte)((ulonglong)lVar3 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 8)" ( (binary_expression "(ulonglong)lVar3 >> 8" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar3 >> 0x18);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar3 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x18)" ( (binary_expression "(ulonglong)lVar3 >> 0x18" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)lVar3 >> 0x10);" (assignment_expression "bVar23 = (byte)((ulonglong)lVar3 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar3 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x10)" ( (binary_expression "(ulonglong)lVar3 >> 0x10" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (quantum_info->endian == LSBEndian) {\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }\n                else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" if (parenthesized_expression "(quantum_info->endian == LSBEndian)" ( (binary_expression "quantum_info->endian == LSBEndian" (field_expression "quantum_info->endian" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                  *pixels = (byte)local_64;\n                  pixels[1] = bVar29;\n                  pixels[2] = bVar23;\n                  pixels[3] = bVar25;\n                }" { (expression_statement "*pixels = (byte)local_64;" (assignment_expression "*pixels = (byte)local_64" (pointer_expression "*pixels" * identifier) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = bVar29;" (assignment_expression "pixels[1] = bVar29" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar23;" (assignment_expression "pixels[2] = bVar23" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = bVar25;" (assignment_expression "pixels[3] = bVar25" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" else (compound_statement "{\n                  *pixels = bVar25;\n                  pixels[1] = bVar23;\n                  pixels[2] = bVar29;\n                  pixels[3] = (byte)local_64;\n                }" { (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[3] = (byte)local_64;" (assignment_expression "pixels[3] = (byte)local_64" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 4;" (assignment_expression "pixels = pixels + quantum_info->pad + 4" identifier = (binary_expression "pixels + quantum_info->pad + 4" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != (uint)local_fc)" ( (binary_expression "iVar33 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (if_statement "if (uVar16 != 0x40) goto LAB_0015768b;" if (parenthesized_expression "(uVar16 != 0x40)" ( (binary_expression "uVar16 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_0015768b;" goto statement_identifier ;)) (if_statement "if (quantum_info->format == FloatingPointQuantumFormat) {\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" if (parenthesized_expression "(quantum_info->format == FloatingPointQuantumFormat)" ( (binary_expression "quantum_info->format == FloatingPointQuantumFormat" (field_expression "quantum_info->format" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }\n          goto _L4734;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar4 = (quantum_info->state).inverse_scale;\n            iVar22 = 0;\n            dVar5 = quantum_info->minimum;\n            EVar12 = quantum_info->endian;\n            do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);\n          }" { (expression_statement "dVar4 = (quantum_info->state).inverse_scale;" (assignment_expression "dVar4 = (quantum_info->state).inverse_scale" identifier = (field_expression "(quantum_info->state).inverse_scale" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = quantum_info->minimum;" (assignment_expression "dVar5 = quantum_info->minimum" identifier = (field_expression "quantum_info->minimum" identifier -> field_identifier)) ;) (expression_statement "EVar12 = quantum_info->endian;" (assignment_expression "EVar12 = quantum_info->endian" identifier = (field_expression "quantum_info->endian" identifier -> field_identifier)) ;) (do_statement "do {\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            } while (iVar22 != iVar33);" do (compound_statement "{\n              if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar4 + dVar5;\n              bVar29 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar23 = (byte)((ulonglong)dVar6 >> 8);\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar26 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }\n              iVar22 = iVar22 + 1;\n              local_c4 = local_c4 + image->number_channels;\n              pixels = pixels + quantum_info->pad + 8;\n            }" { (if_statement "if (image->channel_map[4].traits == BlendPixelTrait) {\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }\n              else {\n                dVar6 = 0.0;\n              }" if (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) (compound_statement "{\n                dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];\n              }" { (expression_statement "dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset];" (assignment_expression "dVar6 = (double)DAT_0029f710 - local_c4[image->channel_map[4].offset]" identifier = (binary_expression "(double)DAT_0029f710 - local_c4[image->channel_map[4].offset]" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ;) }) (else_clause "else {\n                dVar6 = 0.0;\n              }" else (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar6 = dVar6 * dVar4 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar4 + dVar5" identifier = (binary_expression "dVar6 * dVar4 + dVar5" (binary_expression "dVar6 * dVar4" identifier * identifier) + identifier)) ;) (expression_statement "bVar29 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar29 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar23 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar23 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar26 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar26 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "local_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "local_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (EVar12 == LSBEndian) {\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }\n              else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }" if (parenthesized_expression "(EVar12 == LSBEndian)" ( (binary_expression "EVar12 == LSBEndian" identifier == identifier) )) (compound_statement "{\n                *pixels = SUB81(dVar6,0);\n                pixels[4] = bVar26;\n                pixels[5] = bVar29;\n                pixels[7] = bVar25;\n                pixels[1] = bVar23;\n                pixels[2] = (byte)local_e4;\n                pixels[3] = (byte)local_f4;\n                pixels[6] = (byte)local_fc;\n              }" { (expression_statement "*pixels = SUB81(dVar6,0);" (assignment_expression "*pixels = SUB81(dVar6,0)" (pointer_expression "*pixels" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = bVar26;" (assignment_expression "pixels[4] = bVar26" (subscript_expression "pixels[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[5] = bVar29;" (assignment_expression "pixels[5] = bVar29" (subscript_expression "pixels[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = bVar25;" (assignment_expression "pixels[7] = bVar25" (subscript_expression "pixels[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[1] = bVar23;" (assignment_expression "pixels[1] = bVar23" (subscript_expression "pixels[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[2] = (byte)local_e4;" (assignment_expression "pixels[2] = (byte)local_e4" (subscript_expression "pixels[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[3] = (byte)local_f4;" (assignment_expression "pixels[3] = (byte)local_f4" (subscript_expression "pixels[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = (byte)local_fc;" (assignment_expression "pixels[6] = (byte)local_fc" (subscript_expression "pixels[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }" else (compound_statement "{\n                pixels[2] = bVar29;\n                *pixels = bVar25;\n                pixels[3] = bVar26;\n                pixels[7] = SUB81(dVar6,0);\n                pixels[4] = (byte)local_f4;\n                pixels[1] = (byte)local_fc;\n                pixels[5] = (byte)local_e4;\n                pixels[6] = bVar23;\n              }" { (expression_statement "pixels[2] = bVar29;" (assignment_expression "pixels[2] = bVar29" (subscript_expression "pixels[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pixels = bVar25;" (assignment_expression "*pixels = bVar25" (pointer_expression "*pixels" * identifier) = identifier) ;) (expression_statement "pixels[3] = bVar26;" (assignment_expression "pixels[3] = bVar26" (subscript_expression "pixels[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixels[7] = SUB81(dVar6,0);" (assignment_expression "pixels[7] = SUB81(dVar6,0)" (subscript_expression "pixels[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "pixels[4] = (byte)local_f4;" (assignment_expression "pixels[4] = (byte)local_f4" (subscript_expression "pixels[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[1] = (byte)local_fc;" (assignment_expression "pixels[1] = (byte)local_fc" (subscript_expression "pixels[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[5] = (byte)local_e4;" (assignment_expression "pixels[5] = (byte)local_e4" (subscript_expression "pixels[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pixels[6] = bVar23;" (assignment_expression "pixels[6] = bVar23" (subscript_expression "pixels[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (expression_statement "pixels = pixels + quantum_info->pad + 8;" (assignment_expression "pixels = pixels + quantum_info->pad + 8" identifier = (binary_expression "pixels + quantum_info->pad + 8" (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier)) + number_literal)) ;) }) while (parenthesized_expression "(iVar22 != iVar33)" ( (binary_expression "iVar22 != iVar33" identifier != identifier) )) ;) })) (goto_statement "goto _L4734;" goto statement_identifier ;) })) (labeled_statement "LAB_00154e80:\n        uVar32 = 0;" statement_identifier : (expression_statement "uVar32 = 0;" (assignment_expression "uVar32 = 0" identifier = number_literal) ;)) (if_statement "if (uVar16 < 0x41) {\n          uVar32 = uVar16;\n        }" if (parenthesized_expression "(uVar16 < 0x41)" ( (binary_expression "uVar16 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar32 = uVar16;\n        }" { (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) })) (expression_statement "bVar23 = (byte)(uVar32 - 1);" (assignment_expression "bVar23 = (byte)(uVar32 - 1)" identifier = (call_expression "(byte)(uVar32 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar32 - 1)" ( (binary_expression "uVar32 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar29 = bVar23 & 0x1f;" (assignment_expression "bVar29 = bVar23 & 0x1f" identifier = (binary_expression "bVar23 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar20 = 2 << (bVar23 & 0x1f);" (assignment_expression "uVar20 = 2 << (bVar23 & 0x1f)" identifier = (binary_expression "2 << (bVar23 & 0x1f)" number_literal << (parenthesized_expression "(bVar23 & 0x1f)" ( (binary_expression "bVar23 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar21 = uVar20;" (assignment_expression "uVar21 = uVar20" identifier = identifier) ;) (expression_statement "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29;" (assignment_expression "uVar30 = 0 << bVar29 | 2U >> 0x20 - bVar29" identifier = (binary_expression "0 << bVar29 | 2U >> 0x20 - bVar29" (binary_expression "0 << bVar29" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar29" number_literal >> (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar32 - 1 & 0x20) != 0) {\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" if (parenthesized_expression "((uVar32 - 1 & 0x20) != 0)" ( (binary_expression "(uVar32 - 1 & 0x20) != 0" (parenthesized_expression "(uVar32 - 1 & 0x20)" ( (binary_expression "uVar32 - 1 & 0x20" (binary_expression "uVar32 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar21 = 0;\n          uVar30 = uVar20;\n        }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar20;" (assignment_expression "uVar30 = uVar20" identifier = identifier) ;) })) (expression_statement "local_dc = uVar21 - 1;" (assignment_expression "local_dc = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0);" (assignment_expression "iStack_d8 = (uVar30 - 1) + (uint)(uVar21 != 0)" identifier = (binary_expression "(uVar30 - 1) + (uint)(uVar21 != 0)" (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar21 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar21 != 0)" ( (binary_expression "uVar21 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        iVar33 = 0;\n        while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }\n      }" { (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          local_f4 = 0;\n          if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar32 = uVar16;\n          if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }\n          while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }\n          iVar33 = iVar33 + 1;\n          pixels = pixels + quantum_info->pad;\n          local_c4 = local_c4 + image->number_channels;\n          if (iVar33 == (uint)local_fc) break;\n          uVar16 = quantum_info->depth;\n        }" { (expression_statement "local_f4 = 0;" (assignment_expression "local_f4 = 0" identifier = number_literal) ;) (if_statement "if ((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) {\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" if (parenthesized_expression "((image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]))" ( (binary_expression "(image->channel_map[4].traits == BlendPixelTrait) &&\n             (0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" (parenthesized_expression "(image->channel_map[4].traits == BlendPixelTrait)" ( (binary_expression "image->channel_map[4].traits == BlendPixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) == identifier) )) && (parenthesized_expression "(0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" ( (binary_expression "0.0 < DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" number_literal < (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ])))) ))) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_d8,local_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_f4 = -1;\n            fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,local_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,local_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,local_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,local_dc)" identifier (argument_list "(iStack_d8,local_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_f4 = -1;" (assignment_expression "local_f4 = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710;" (assignment_expression "fVar1 = (fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710" identifier = (binary_expression "(fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])) /\n                    DAT_0029f710" (parenthesized_expression "(fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]))" ( (binary_expression "fVar1 * (DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" identifier * (parenthesized_expression "(DAT_0029f710 - (float)local_c4[image->channel_map[4].offset])" ( (binary_expression "DAT_0029f710 - (float)local_c4[image->channel_map[4].offset]" identifier - (cast_expression "(float)local_c4[image->channel_map[4].offset]" ( (type_descriptor "float" primitive_type) ) (subscript_expression "local_c4[image->channel_map[4].offset]" identifier [ (field_expression "image->channel_map[4].offset" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) ]))) ))) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }" if (parenthesized_expression "(fVar1 < DAT_0029f714)" ( (binary_expression "fVar1 < DAT_0029f714" identifier < identifier) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f124;" (assignment_expression "fVar1 = fVar1 + DAT_0029f124" identifier = (binary_expression "fVar1 + DAT_0029f124" identifier + identifier)) ;) (if_statement "if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }" { (expression_statement "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (binary_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20" (cast_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) >> number_literal) )))) ;) (expression_statement "local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "local_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "(iStack_60 + -0x80000000,\n                                    (int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) )))) ;) }) (else_clause "else {\n                local_f4 = (longlong)ROUND(fVar1);\n              }" else (compound_statement "{\n                local_f4 = (longlong)ROUND(fVar1);\n              }" { (expression_statement "local_f4 = (longlong)ROUND(fVar1);" (assignment_expression "local_f4 = (longlong)ROUND(fVar1)" identifier = (cast_expression "(longlong)ROUND(fVar1)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1)" identifier (argument_list "(fVar1)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar32 = uVar16;" (assignment_expression "uVar32 = uVar16" identifier = identifier) ;) (if_statement "if ((quantum_info->state).bits == 0) {\n            (quantum_info->state).bits = 8;\n          }" if (parenthesized_expression "((quantum_info->state).bits == 0)" ( (binary_expression "(quantum_info->state).bits == 0" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n            (quantum_info->state).bits = 8;\n          }" { (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (while_statement "while (0 < (int)uVar32) {\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar32)" ( (binary_expression "0 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar30 = (quantum_info->state).bits;\n            uVar21 = uVar30;\n            if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }\n            uVar32 = uVar16 - uVar21;\n            uVar16 = 0;\n            if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }\n            if (uVar30 == 8) {\n              *pixels = 0;\n            }\n            uVar30 = uVar30 - uVar21;\n            bVar29 = (byte)uVar16 & 0x1f;\n            uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;\n            if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }\n            (quantum_info->state).bits = uVar30;\n            bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));\n            if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }\n            *pixels = *pixels | bVar29;\n            if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }\n          }" { (expression_statement "uVar30 = (quantum_info->state).bits;" (assignment_expression "uVar30 = (quantum_info->state).bits" identifier = (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar21 = uVar30;" (assignment_expression "uVar21 = uVar30" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar30) {\n              uVar21 = uVar16;\n            }" if (parenthesized_expression "(uVar16 <= uVar30)" ( (binary_expression "uVar16 <= uVar30" identifier <= identifier) )) (compound_statement "{\n              uVar21 = uVar16;\n            }" { (expression_statement "uVar21 = uVar16;" (assignment_expression "uVar21 = uVar16" identifier = identifier) ;) })) (expression_statement "uVar32 = uVar16 - uVar21;" (assignment_expression "uVar32 = uVar16 - uVar21" identifier = (binary_expression "uVar16 - uVar21" identifier - identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar32) {\n              uVar16 = uVar32;\n            }" if (parenthesized_expression "(-1 < (int)uVar32)" ( (binary_expression "-1 < (int)uVar32" number_literal < (cast_expression "(int)uVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar16 = uVar32;\n            }" { (expression_statement "uVar16 = uVar32;" (assignment_expression "uVar16 = uVar32" identifier = identifier) ;) })) (if_statement "if (uVar30 == 8) {\n              *pixels = 0;\n            }" if (parenthesized_expression "(uVar30 == 8)" ( (binary_expression "uVar30 == 8" identifier == number_literal) )) (compound_statement "{\n              *pixels = 0;\n            }" { (expression_statement "*pixels = 0;" (assignment_expression "*pixels = 0" (pointer_expression "*pixels" * identifier) = number_literal) ;) })) (expression_statement "uVar30 = uVar30 - uVar21;" (assignment_expression "uVar30 = uVar30 - uVar21" identifier = (binary_expression "uVar30 - uVar21" identifier - identifier)) ;) (expression_statement "bVar29 = (byte)uVar16 & 0x1f;" (assignment_expression "bVar29 = (byte)uVar16 & 0x1f" identifier = (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29;" (assignment_expression "uVar20 = (uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" identifier = (binary_expression "(uint)local_f4 >> bVar29 | local_f4._4_4_ << 0x20 - bVar29" (binary_expression "(uint)local_f4 >> bVar29" (cast_expression "(uint)local_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_f4._4_4_ << 0x20 - bVar29" (field_expression "local_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar29" number_literal - identifier)))) ;) (if_statement "if ((uVar16 & 0x20) != 0) {\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" if (parenthesized_expression "((uVar16 & 0x20) != 0)" ( (binary_expression "(uVar16 & 0x20) != 0" (parenthesized_expression "(uVar16 & 0x20)" ( (binary_expression "uVar16 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);\n            }" { (expression_statement "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f);" (assignment_expression "uVar20 = local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" identifier = (binary_expression "local_f4._4_4_ >> ((byte)uVar16 & 0x1f)" (field_expression "local_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "(quantum_info->state).bits = uVar30;" (assignment_expression "(quantum_info->state).bits = uVar30" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f));" (assignment_expression "bVar29 = (byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20) << ((byte)uVar30 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar21 & 0x1f)) & uVar20)" ( (binary_expression "~(-1 << ((byte)uVar21 & 0x1f)) & uVar20" (unary_expression "~(-1 << ((byte)uVar21 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar21 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar21 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar21 & 0x1f)" ( (binary_expression "(byte)uVar21 & 0x1f" (cast_expression "(byte)uVar21" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar30 & 0x1f)" ( (binary_expression "(byte)uVar30 & 0x1f" (cast_expression "(byte)uVar30" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar30 & 0x20) != 0) {\n              bVar29 = 0;\n            }" if (parenthesized_expression "((uVar30 & 0x20) != 0)" ( (binary_expression "(uVar30 & 0x20) != 0" (parenthesized_expression "(uVar30 & 0x20)" ( (binary_expression "uVar30 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar29 = 0;\n            }" { (expression_statement "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) })) (expression_statement "*pixels = *pixels | bVar29;" (assignment_expression "*pixels = *pixels | bVar29" (pointer_expression "*pixels" * identifier) = (binary_expression "*pixels | bVar29" (pointer_expression "*pixels" * identifier) | identifier)) ;) (if_statement "if (uVar30 == 0) {\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" if (parenthesized_expression "(uVar30 == 0)" ( (binary_expression "uVar30 == 0" identifier == number_literal) )) (compound_statement "{\n              pixels = pixels + 1;\n              (quantum_info->state).bits = 8;\n            }" { (expression_statement "pixels = pixels + 1;" (assignment_expression "pixels = pixels + 1" identifier = (binary_expression "pixels + 1" identifier + number_literal)) ;) (expression_statement "(quantum_info->state).bits = 8;" (assignment_expression "(quantum_info->state).bits = 8" (field_expression "(quantum_info->state).bits" (parenthesized_expression "(quantum_info->state)" ( (field_expression "quantum_info->state" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) })) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "pixels = pixels + quantum_info->pad;" (assignment_expression "pixels = pixels + quantum_info->pad" identifier = (binary_expression "pixels + quantum_info->pad" identifier + (field_expression "quantum_info->pad" identifier -> field_identifier))) ;) (expression_statement "local_c4 = local_c4 + image->number_channels;" (assignment_expression "local_c4 = local_c4 + image->number_channels" identifier = (binary_expression "local_c4 + image->number_channels" identifier + (field_expression "image->number_channels" identifier -> field_identifier))) ;) (if_statement "if (iVar33 == (uint)local_fc) break;" if (parenthesized_expression "(iVar33 == (uint)local_fc)" ( (binary_expression "iVar33 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = quantum_info->depth;" (assignment_expression "uVar16 = quantum_info->depth" identifier = (field_expression "quantum_info->depth" identifier -> field_identifier)) ;) })) })) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case RGBAQuantum:\n_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      break;" case identifier : (labeled_statement "_L5114:\n      ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportRGBAQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case RGBOQuantum:\n_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);\n      goto _L4734;" case identifier : (labeled_statement "_L5115:\n      ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportRGBOQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto _L4734;" goto statement_identifier ;)) (case_statement "case RGBQuantum:\n_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" case identifier : (labeled_statement "_L5113:\n      ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" statement_identifier : (expression_statement "ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception);" (call_expression "ExportRGBQuantum(image,quantum_info,local_fc,local_c4,pixels,exception)" identifier (argument_list "(image,quantum_info,local_fc,local_c4,pixels,exception)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;))) })) (if_statement "if (1 < uVar16) goto _L4734;" if (parenthesized_expression "(1 < uVar16)" ( (binary_expression "1 < uVar16" number_literal < identifier) )) (goto_statement "goto _L4734;" goto statement_identifier ;)) }))) (if_statement "if (image_view == (CacheView *)0x0) {\n    pQVar18 = GetAuthenticPixelQueue(image);\n  }\n  else {\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }" if (parenthesized_expression "(image_view == (CacheView *)0x0)" ( (binary_expression "image_view == (CacheView *)0x0" identifier == (cast_expression "(CacheView *)0x0" ( (type_descriptor "CacheView *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pQVar18 = GetAuthenticPixelQueue(image);\n  }" { (expression_statement "pQVar18 = GetAuthenticPixelQueue(image);" (assignment_expression "pQVar18 = GetAuthenticPixelQueue(image)" identifier = (call_expression "GetAuthenticPixelQueue(image)" identifier (argument_list "(image)" ( identifier )))) ;) }) (else_clause "else {\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }" else (compound_statement "{\n    pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);\n  }" { (expression_statement "pQVar18 = GetCacheViewAuthenticPixelQueue(image_view);" (assignment_expression "pQVar18 = GetCacheViewAuthenticPixelQueue(image_view)" identifier = (call_expression "GetCacheViewAuthenticPixelQueue(image_view)" identifier (argument_list "(image_view)" ( identifier )))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n    sVar11 = image->number_channels;\n    iVar33 = image->channel_map->offset;\n    iVar22 = image->channel_map[1].offset;\n    iVar28 = 0;\n    pQVar18 = pQVar18 + iVar33;\n    do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);\n  }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n    sVar11 = image->number_channels;\n    iVar33 = image->channel_map->offset;\n    iVar22 = image->channel_map[1].offset;\n    iVar28 = 0;\n    pQVar18 = pQVar18 + iVar33;\n    do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);\n  }" { (expression_statement "sVar11 = image->number_channels;" (assignment_expression "sVar11 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "iVar33 = image->channel_map->offset;" (assignment_expression "iVar33 = image->channel_map->offset" identifier = (field_expression "image->channel_map->offset" (field_expression "image->channel_map" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "iVar22 = image->channel_map[1].offset;" (assignment_expression "iVar22 = image->channel_map[1].offset" identifier = (field_expression "image->channel_map[1].offset" (subscript_expression "image->channel_map[1]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "pQVar18 = pQVar18 + iVar33;" (assignment_expression "pQVar18 = pQVar18 + iVar33" identifier = (binary_expression "pQVar18 + iVar33" identifier + identifier)) ;) (do_statement "do {\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    } while (iVar28 != (uint)local_fc);" do (compound_statement "{\n      QVar2 = *pQVar18;\n      iVar28 = iVar28 + 1;\n      *pQVar18 = pQVar18[iVar22 - iVar33];\n      pQVar18[iVar22 - iVar33] = QVar2;\n      pQVar18 = pQVar18 + sVar11;\n    }" { (expression_statement "QVar2 = *pQVar18;" (assignment_expression "QVar2 = *pQVar18" identifier = (pointer_expression "*pQVar18" * identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "*pQVar18 = pQVar18[iVar22 - iVar33];" (assignment_expression "*pQVar18 = pQVar18[iVar22 - iVar33]" (pointer_expression "*pQVar18" * identifier) = (subscript_expression "pQVar18[iVar22 - iVar33]" identifier [ (binary_expression "iVar22 - iVar33" identifier - identifier) ])) ;) (expression_statement "pQVar18[iVar22 - iVar33] = QVar2;" (assignment_expression "pQVar18[iVar22 - iVar33] = QVar2" (subscript_expression "pQVar18[iVar22 - iVar33]" identifier [ (binary_expression "iVar22 - iVar33" identifier - identifier) ]) = identifier) ;) (expression_statement "pQVar18 = pQVar18 + sVar11;" (assignment_expression "pQVar18 = pQVar18 + sVar11" identifier = (binary_expression "pQVar18 + sVar11" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar28 != (uint)local_fc)" ( (binary_expression "iVar28 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (labeled_statement "_L4734:\n  if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }" statement_identifier : (if_statement "if (iVar7 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\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    return local_c0;\n  }" { (return_statement "return local_c0;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4\nExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    \n  FUN_0029eab0();\n}\n\n" (function_definition "undefined4\nExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    \n  FUN_0029eab0();\n}" type_identifier (function_declarator "ExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" identifier (parameter_list "(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "byte *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    \n  FUN_0029eab0();\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "double dVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "float fVar8;" primitive_type identifier ;) (declaration "double dVar9;" primitive_type identifier ;) (declaration "undefined2 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "double *pdVar12;" primitive_type (pointer_declarator "*pdVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "double *pdVar20;" primitive_type (pointer_declarator "*pdVar20" * identifier) ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar30;" type_identifier identifier ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "ulonglong local_10c;" type_identifier identifier ;) (declaration "ulonglong local_104;" type_identifier identifier ;) (declaration "undefined8 local_fc;" type_identifier identifier ;) (declaration "undefined8 uStack_f4;" type_identifier identifier ;) (declaration "byte bStack_ec;" type_identifier identifier ;) (declaration "undefined8 uStack_e4;" type_identifier identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "undefined4 local_c0;" type_identifier identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "undefined8 local_b4;" type_identifier identifier ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "uint uStack_64;" type_identifier identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "double adStack_44 [4];" primitive_type (array_declarator "adStack_44 [4]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (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) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" identifier (argument_list "("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportQuantumPixels"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_3 == (uint *)0x0)" ( (binary_expression "param_3 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" { (expression_statement "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" identifier (argument_list "("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" ( (string_literal ""quantum_info != (QuantumInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" if (parenthesized_expression "(param_3[0x17] != 0xabacadab)" ( (binary_expression "param_3[0x17] != 0xabacadab" (subscript_expression "param_3[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" { (expression_statement "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" identifier (argument_list "("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" ( (string_literal ""quantum_info->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , number_literal , (string_literal ""ExportQuantumPixels"" " string_content ") ))) ;) })) (if_statement "if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" if (parenthesized_expression "(param_5 == (byte *)0x0)" ( (binary_expression "param_5 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" { (expression_statement "param_5 = (byte *)GetQuantumPixels(param_3);" (assignment_expression "param_5 = (byte *)GetQuantumPixels(param_3)" identifier = (cast_expression "(byte *)GetQuantumPixels(param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetQuantumPixels(param_3)" identifier (argument_list "(param_3)" ( identifier ))))) ;) })) (expression_statement "uVar11 = param_4 - 7;" (assignment_expression "uVar11 = param_4 - 7" identifier = (binary_expression "param_4 - 7" identifier - number_literal)) ;) (if_statement "if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }" { (expression_statement "uVar30 = GetImageExtent(param_1);" (assignment_expression "uVar30 = GetImageExtent(param_1)" identifier = (call_expression "GetImageExtent(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "local_c4 = GetVirtualPixelQueue(param_1);" (assignment_expression "local_c4 = GetVirtualPixelQueue(param_1)" identifier = (call_expression "GetVirtualPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" if (parenthesized_expression "(param_3[0xc] == 1)" ( (binary_expression "param_3[0xc] == 1" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" { (expression_statement "pdVar12 = (double *)GetAuthenticPixelQueue(param_1);" (assignment_expression "pdVar12 = (double *)GetAuthenticPixelQueue(param_1)" identifier = (cast_expression "(double *)GetAuthenticPixelQueue(param_1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier ))))) ;) (goto_statement "goto LAB_001548e3;" goto statement_identifier ;) })) (labeled_statement "LAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;" statement_identifier : (if_statement "if (1 < uVar11) goto LAB_001547fe;" if (parenthesized_expression "(1 < uVar11)" ( (binary_expression "1 < uVar11" number_literal < identifier) )) (goto_statement "goto LAB_001547fe;" goto statement_identifier ;))) (labeled_statement "LAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" identifier = (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" { (expression_statement "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar28 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8)" identifier = (cast_expression "(undefined8 *)(iVar13 + iVar18 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + iVar18 * 8)" ( (binary_expression "iVar13 + iVar18 * 8" identifier + (binary_expression "iVar18 * 8" identifier * number_literal)) )))) ;) (do_statement "do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);" do (compound_statement "{\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      }" { (expression_statement "uVar2 = *puVar14;" (assignment_expression "uVar2 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = puVar14[iVar27 - iVar18];" (assignment_expression "*puVar14 = puVar14[iVar27 - iVar18]" (pointer_expression "*puVar14" * identifier) = (subscript_expression "puVar14[iVar27 - iVar18]" identifier [ (binary_expression "iVar27 - iVar18" identifier - identifier) ])) ;) (expression_statement "puVar14[iVar27 - iVar18] = uVar2;" (assignment_expression "puVar14[iVar27 - iVar18] = uVar2" (subscript_expression "puVar14[iVar27 - iVar18]" identifier [ (binary_expression "iVar27 - iVar18" identifier - identifier) ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar28;" (assignment_expression "puVar14 = puVar14 + iVar28" identifier = (binary_expression "puVar14 + iVar28" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar24 != (uint)local_fc)" ( (binary_expression "iVar24 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" identifier = (call_expression "GetQuantumExtent(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" { (case_statement "case 1:\n      goto code_r0x00154c08;" case number_literal : (goto_statement "goto code_r0x00154c08;" goto statement_identifier ;)) (case_statement "case 2:\n      goto code_r0x00156619;" case number_literal : (goto_statement "goto code_r0x00156619;" goto statement_identifier ;)) (case_statement "case 3:\n      goto code_r0x001565ed;" case number_literal : (goto_statement "goto code_r0x001565ed;" goto statement_identifier ;)) (case_statement "case 4:\n      goto code_r0x00154848;" case number_literal : (goto_statement "goto code_r0x00154848;" goto statement_identifier ;)) (case_statement "case 5:\n      goto code_r0x00156375;" case number_literal : (goto_statement "goto code_r0x00156375;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 0x1a:\n      goto code_r0x001560f3;" case number_literal : (goto_statement "goto code_r0x001560f3;" goto statement_identifier ;)) (case_statement "case 7:" case number_literal :) (case_statement "case 0x16:\n      goto code_r0x001560c7;" case number_literal : (goto_statement "goto code_r0x001560c7;" goto statement_identifier ;)) (case_statement "case 8:" case number_literal :) (case_statement "case 0x19:\n      goto code_r0x00154a5f;" case number_literal : (goto_statement "goto code_r0x00154a5f;" goto statement_identifier ;)) (case_statement "case 9:\n      goto code_r0x00155641;" case number_literal : (goto_statement "goto code_r0x00155641;" goto statement_identifier ;)) (case_statement "case 10:\n      goto code_r0x00155615;" case number_literal : (goto_statement "goto code_r0x00155615;" goto statement_identifier ;)) (case_statement "case 0xb:\n      goto code_r0x001555e9;" case number_literal : (goto_statement "goto code_r0x001555e9;" goto statement_identifier ;)) (case_statement "case 0xc:\n      goto code_r0x001555bd;" case number_literal : (goto_statement "goto code_r0x001555bd;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0x15:\n      goto code_r0x0015533d;" case number_literal : (goto_statement "goto code_r0x0015533d;" goto statement_identifier ;)) (case_statement "case 0xe:\n      goto code_r0x00155311;" case number_literal : (goto_statement "goto code_r0x00155311;" goto statement_identifier ;)) (case_statement "case 0xf:\n      goto code_r0x001552e5;" case number_literal : (goto_statement "goto code_r0x001552e5;" goto statement_identifier ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:\n      goto code_r0x00155065;" case number_literal : (goto_statement "goto code_r0x00155065;" goto statement_identifier ;)) (case_statement "case 0x11:\n      goto code_r0x00155039;" case number_literal : (goto_statement "goto code_r0x00155039;" goto statement_identifier ;)) (case_statement "case 0x12:\n      goto code_r0x0015500d;" case number_literal : (goto_statement "goto code_r0x0015500d;" goto statement_identifier ;)) (case_statement "case 0x14:\n      goto code_r0x00154e20;" case number_literal : (goto_statement "goto code_r0x00154e20;" goto statement_identifier ;)) (case_statement "case 0x17:\n      goto code_r0x00154df4;" case number_literal : (goto_statement "goto code_r0x00154df4;" goto statement_identifier ;)) })) }) (else_clause "else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" else (compound_statement "{\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" { (expression_statement "uVar30 = GetCacheViewExtent(param_2);" (assignment_expression "uVar30 = GetCacheViewExtent(param_2)" identifier = (call_expression "GetCacheViewExtent(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_c4 = GetCacheViewVirtualPixelQueue(param_2);" (assignment_expression "local_c4 = GetCacheViewVirtualPixelQueue(param_2)" identifier = (call_expression "GetCacheViewVirtualPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (param_3[0xc] != 1) goto LAB_001547f3;" if (parenthesized_expression "(param_3[0xc] != 1)" ( (binary_expression "param_3[0xc] != 1" (subscript_expression "param_3[0xc]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2)" identifier = (cast_expression "(double *)GetCacheViewAuthenticPixelQueue(param_2)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier ))))) ;) (labeled_statement "LAB_001548e3:\n    dVar3 = _DAT_0029f148;" statement_identifier : (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;)) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar13 < 1) goto LAB_001547f3;" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (goto_statement "goto LAB_001547f3;" goto statement_identifier ;)) (expression_statement "piVar7 = *(int **)(param_1 + 0x2a8);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int **)(param_1 + 0x2a8)" * (cast_expression "(int **)(param_1 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = piVar7[0xd];" (assignment_expression "iVar18 = piVar7[0xd]" identifier = (subscript_expression "piVar7[0xd]" identifier [ number_literal ])) ;) (expression_statement "iVar27 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar27 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);" do (compound_statement "{\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    }" { (if_statement "if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar5 = 1.0;\n      }" { (expression_statement "dVar5 = 1.0;" (assignment_expression "dVar5 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" else (compound_statement "{\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" { (expression_statement "dVar5 = pdVar12[piVar7[0xe]] * dVar3;" (assignment_expression "dVar5 = pdVar12[piVar7[0xe]] * dVar3" identifier = (binary_expression "pdVar12[piVar7[0xe]] * dVar3" (subscript_expression "pdVar12[piVar7[0xe]]" identifier [ (subscript_expression "piVar7[0xe]" identifier [ number_literal ]) ]) * identifier)) ;) }))) (expression_statement "pdVar20 = pdVar12;" (assignment_expression "pdVar20 = pdVar12" identifier = identifier) ;) (expression_statement "piVar23 = piVar7;" (assignment_expression "piVar23 = piVar7" identifier = identifier) ;) (if_statement "if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" if (parenthesized_expression "(0 < iVar27)" ( (binary_expression "0 < iVar27" number_literal < identifier) )) (compound_statement "{\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" { (do_statement "do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);" do (compound_statement "{\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        }" { (if_statement "if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }" if (parenthesized_expression "((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2)" ( (binary_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2" (pointer_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1)" * (cast_expression "(byte *)(piVar7 + *piVar23 * 3 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar7 + *piVar23 * 3 + 1)" ( (binary_expression "piVar7 + *piVar23 * 3 + 1" (binary_expression "piVar7 + *piVar23 * 3" identifier + (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" * identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            *pdVar20 = *pdVar20 * dVar5;\n          }" { (expression_statement "*pdVar20 = *pdVar20 * dVar5;" (assignment_expression "*pdVar20 = *pdVar20 * dVar5" (pointer_expression "*pdVar20" * identifier) = (binary_expression "*pdVar20 * dVar5" (pointer_expression "*pdVar20" * identifier) * identifier)) ;) })) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" identifier = (binary_expression "piVar23 + 3" identifier + number_literal)) ;) (expression_statement "pdVar20 = pdVar20 + 1;" (assignment_expression "pdVar20 = pdVar20 + 1" identifier = (binary_expression "pdVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar7 + iVar27 * 3)" ( (binary_expression "piVar23 != piVar7 + iVar27 * 3" identifier != (binary_expression "piVar7 + iVar27 * 3" identifier + (binary_expression "iVar27 * 3" identifier * number_literal))) )) ;) })) (expression_statement "pdVar12 = pdVar12 + iVar27;" (assignment_expression "pdVar12 = pdVar12 + iVar27" identifier = (binary_expression "pdVar12 + iVar27" identifier + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar28 != iVar13)" ( (binary_expression "iVar28 != iVar13" identifier != identifier) )) ;) (if_statement "if (uVar11 < 2) goto LAB_00154999;" if (parenthesized_expression "(uVar11 < 2)" ( (binary_expression "uVar11 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00154999;" goto statement_identifier ;)) (labeled_statement "LAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" identifier (argument_list "(param_3)" ( identifier ))) ;) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" identifier = (call_expression "GetQuantumExtent(param_1,param_3,param_4)" identifier (argument_list "(param_1,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (switch_statement "switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" switch (parenthesized_expression "(param_4)" ( identifier )) (compound_statement "{\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" { (case_statement "default:\n      goto LAB_001548a8;" default : (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154c08:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "fVar1 = DAT_0029f710;" (assignment_expression "fVar1 = DAT_0029f710" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" { (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xfb;" (assignment_expression "uVar11 = 0xfb" identifier = number_literal) ;) (labeled_statement "code_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" statement_identifier : (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" identifier (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" ( (string_literal ""exception != (ExceptionInfo *) NULL"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" { (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" identifier = (string_literal ""ExportAlphaQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xfc;" (assignment_expression "uVar11 = 0xfc" identifier = number_literal) ;) (labeled_statement "code_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" statement_identifier : (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" identifier (argument_list "("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" ( (string_literal ""exception->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , identifier , identifier ))) ;)) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = 1.0;\n              }" { (expression_statement "fVar1 = 1.0;" (assignment_expression "fVar1 = 1.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" identifier = (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) )))) ;) }))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (labeled_statement "code_r0x00157b5e:\n                iVar18 = -1;" statement_identifier : (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;)) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" else (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" else (compound_statement "{\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" { (if_statement "if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto code_r0x00157b5e;" goto statement_identifier ;)) (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" if (parenthesized_expression "((double)DAT_002a7ff4 <= dVar3)" ( (binary_expression "(double)DAT_002a7ff4 <= dVar3" (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    bVar25 = 0xff;\n                  }" { (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" else (compound_statement "{\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) }))) })) })) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00157d50:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x00154c68;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00154c68;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (expression_statement "fVar8 = fVar1;" (assignment_expression "fVar8 = fVar1" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" { (expression_statement "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) })) (expression_statement "fVar8 = fVar8 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar8 = fVar8 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar8 * (float)dVar3 + (float)dVar5" (binary_expression "fVar8 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar8 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar8 >> 8)" identifier = (call_expression "(byte)((uint)fVar8 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 8)" ( (binary_expression "(uint)fVar8 >> 8" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar8 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar8 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar8 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 0x18)" ( (binary_expression "(uint)fVar8 >> 0x18" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar8 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar8 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar8 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar8 >> 0x10)" ( (binary_expression "(uint)fVar8 >> 0x10" (cast_expression "(uint)fVar8" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar8,0);" (assignment_expression "*param_5 = SUB41(fVar8,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar8,0)" identifier (argument_list "(fVar8,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar8,0);" (assignment_expression "param_5[3] = SUB41(fVar8,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar8,0)" identifier (argument_list "(fVar8,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (labeled_statement "code_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;" statement_identifier : (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;)) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) goto code_r0x00157c2d;" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (goto_statement "goto code_r0x00157c2d;" goto statement_identifier ;)) (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x00157d50;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00157d50;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "dVar6 = (double)DAT_0029f710;" (assignment_expression "dVar6 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (do_statement "do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (expression_statement "dVar9 = dVar6;" (assignment_expression "dVar9 = dVar6" identifier = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (compound_statement "{\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" { (expression_statement "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) })) (expression_statement "dVar9 = dVar9 * dVar3 + dVar5;" (assignment_expression "dVar9 = dVar9 * dVar3 + dVar5" identifier = (binary_expression "dVar9 * dVar3 + dVar5" (binary_expression "dVar9 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar9 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar9 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x28)" ( (binary_expression "(ulonglong)dVar9 >> 0x28" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar9 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar9 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 8)" ( (binary_expression "(ulonglong)dVar9 >> 8" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar9 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar9 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x38)" ( (binary_expression "(ulonglong)dVar9 >> 0x38" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar9 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar9 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar9 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x20)" ( (binary_expression "(ulonglong)dVar9 >> 0x20" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x18)" ( (binary_expression "(ulonglong)dVar9 >> 0x18" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x30)" ( (binary_expression "(ulonglong)dVar9 >> 0x30" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar9 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar9 >> 0x10)" ( (binary_expression "(ulonglong)dVar9 >> 0x10" (cast_expression "(ulonglong)dVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" { (expression_statement "*param_5 = SUB81(dVar9,0);" (assignment_expression "*param_5 = SUB81(dVar9,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar9,0)" identifier (argument_list "(dVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar9,0);" (assignment_expression "param_5[7] = SUB81(dVar9,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar9,0)" identifier (argument_list "(dVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00154c68:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" { (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = number_literal) ;) (do_statement "do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );" do (compound_statement "{\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "dVar3 = (double)DAT_0029f710;" (assignment_expression "dVar3 = (double)DAT_0029f710" identifier = (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (labeled_statement "code_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" statement_identifier : (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;)) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) }) (else_clause "else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" else (compound_statement "{\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) goto code_r0x001566ad;" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (goto_statement "goto code_r0x001566ad;" goto statement_identifier ;)) }))) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" ( (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00146770(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00146770(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0014fd90(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014fd90(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013fa50(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013fa50(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00156375:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 2)" ( (binary_expression "*(int *)(param_1 + 4) != 2" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" { (expression_statement "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" identifier (argument_list "(param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/quantum-export.c"" " string_content ") , (string_literal ""ExportBlackQuantum"" " string_content ") , number_literal , number_literal , (string_literal ""ColorSeparatedImageRequired"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = 0.0;\n              }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" else (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" { (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" identifier = (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) )))) ;) }))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "0.0 < dVar3" number_literal < identifier)) ))) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00158120:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x001563c0;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x001563c0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" else (compound_statement "{\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" { (expression_statement "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) || (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x00158120;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00158120;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" else (compound_statement "{\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) }))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" identifier = (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x001563c0:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" { (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" ( (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) , (binary_expression "0.0 < dVar3" number_literal < identifier)) ))) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" identifier . field_identifier) = (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" if (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" ( (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 6:" case number_literal :) (case_statement "case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x001560f3:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x4e6;" (assignment_expression "uVar11 = 0x4e6" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" identifier = (string_literal ""ExportBlueQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x4e7;" (assignment_expression "uVar11 = 0x4e7" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x00157c43:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x00156153:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x00157c43;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x00157c43;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x00156153;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x00156153;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" statement_identifier : (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x559;" (assignment_expression "uVar11 = 0x559" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) }))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" identifier = (string_literal ""ExportCbYCrYQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x55a;" (assignment_expression "uVar11 = 0x55a" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(uVar11 == 10)" ( (binary_expression "uVar11 == 10" identifier == number_literal) )) (compound_statement "{\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }" { (if_statement "if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" if (parenthesized_expression "((param_3[0xb] == 0) && (0 < (int)(uint)local_fc))" ( (binary_expression "(param_3[0xb] == 0) && (0 < (int)(uint)local_fc)" (parenthesized_expression "(param_3[0xb] == 0)" ( (binary_expression "param_3[0xb] == 0" (subscript_expression "param_3[0xb]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) (compound_statement "{\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);" do (compound_statement "{\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (do_statement "do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);" do (compound_statement "{\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            }" { (expression_statement "uVar11 = (uint)(iVar13 + iVar27) % 3;" (assignment_expression "uVar11 = (uint)(iVar13 + iVar27) % 3" identifier = (binary_expression "(uint)(iVar13 + iVar27) % 3" (call_expression "(uint)(iVar13 + iVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar13 + iVar27)" ( (binary_expression "iVar13 + iVar27" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" identifier = (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 0x14) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x14) * 8" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }) (else_clause "else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" else (if_statement "if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" if (parenthesized_expression "(uVar11 == 2)" ( (binary_expression "uVar11 == 2" identifier == number_literal) )) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" identifier = (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x20) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 0x20) * 8" identifier + (binary_expression "*(int *)(iVar18 + 0x20) * 8" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }) (else_clause "else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" else (compound_statement "{\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(iVar18 + 8) * 8" identifier + (binary_expression "*(int *)(iVar18 + 8) * 8" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) * number_literal)) )))) )))))) ;) }))))) (expression_statement "local_10c = (ulonglong)uStack_64;" (assignment_expression "local_10c = (ulonglong)uStack_64" identifier = (cast_expression "(ulonglong)uStack_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "adStack_44[iVar27] = (double)local_10c;" (assignment_expression "adStack_44[iVar27] = (double)local_10c" (subscript_expression "adStack_44[iVar27]" identifier [ identifier ]) = (cast_expression "(double)local_10c" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 != 4)" ( (binary_expression "iVar27 != 4" identifier != number_literal) )) ;) (expression_statement "iVar13 = iVar13 + 4;" (assignment_expression "iVar13 = iVar13 + 4" identifier = (binary_expression "iVar13 + 4" identifier + number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[0])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[0])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[0])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar29 = uStack_64 << 0xc;" (assignment_expression "uVar29 = uStack_64 << 0xc" identifier = (binary_expression "uStack_64 << 0xc" identifier << number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[2])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[2])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[2])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar11 = uStack_64 * 4;" (assignment_expression "uVar11 = uStack_64 * 4" identifier = (binary_expression "uStack_64 * 4" identifier * number_literal)) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[1])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[1])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[1])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[1])" identifier (argument_list "(adStack_44[1])" ( (subscript_expression "adStack_44[1]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;" (assignment_expression "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11" identifier = (binary_expression "uStack_64 << 0x16 | uVar29 | uVar11" (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" identifier << number_literal) | identifier) | identifier)) ;) (expression_statement "bVar19 = (byte)(uVar26 >> 0x10);" (assignment_expression "bVar19 = (byte)(uVar26 >> 0x10)" identifier = (call_expression "(byte)(uVar26 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 0x10)" ( (binary_expression "uVar26 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "bVar25 = (byte)uVar11;" (assignment_expression "bVar25 = (byte)uVar11" identifier = (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar26 >> 0x18);" (assignment_expression "local_10c._0_1_ = (byte)(uVar26 >> 0x18)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar26 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 0x18)" ( (binary_expression "uVar26 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "local_104._0_1_ = (byte)(uVar26 >> 8);" (assignment_expression "local_104._0_1_ = (byte)(uVar26 >> 8)" (field_expression "local_104._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar26 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 >> 8)" ( (binary_expression "uVar26 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)local_10c;" (assignment_expression "param_5[3] = (byte)local_10c" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" else (compound_statement "{\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" { (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = (byte)local_10c;" (assignment_expression "*param_5 = (byte)local_10c" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = bVar25;" (assignment_expression "param_5[3] = bVar25" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)local_104;" (assignment_expression "param_5[2] = (byte)local_104" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)local_104" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "uVar29 = uVar29 | uVar11;" (assignment_expression "uVar29 = uVar29 | uVar11" identifier = (binary_expression "uVar29 | uVar11" identifier | identifier)) ;) (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[3])" identifier = (cast_expression "(uint)(longlong)ROUND(adStack_44[3])" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(adStack_44[3])" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) )))))) ;) (expression_statement "uVar11 = uStack_64 << 0x16 | uVar29;" (assignment_expression "uVar11 = uStack_64 << 0x16 | uVar29" identifier = (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" identifier << number_literal) | identifier)) ;) (expression_statement "bVar19 = (byte)(uVar11 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar11 >> 0x18)" identifier = (call_expression "(byte)(uVar11 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar11 >> 0x18)" ( (binary_expression "uVar11 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)(uVar11 >> 0x10);" (assignment_expression "bVar21 = (byte)(uVar11 >> 0x10)" identifier = (call_expression "(byte)(uVar11 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar11 >> 0x10)" ( (binary_expression "uVar11 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "local_10c._0_1_ = (byte)(uVar29 >> 8);" (assignment_expression "local_10c._0_1_ = (byte)(uVar29 >> 8)" (field_expression "local_10c._0_1_" identifier . field_identifier) = (call_expression "(byte)(uVar29 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 >> 8)" ( (binary_expression "uVar29 >> 8" identifier >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }" { (expression_statement "param_5[4] = bVar25;" (assignment_expression "param_5[4] = bVar25" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar19;" (assignment_expression "param_5[7] = bVar19" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = (byte)local_10c;" (assignment_expression "param_5[5] = (byte)local_10c" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar21;" (assignment_expression "param_5[6] = bVar21" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" else (compound_statement "{\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" { (expression_statement "param_5[4] = bVar19;" (assignment_expression "param_5[4] = bVar19" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar21;" (assignment_expression "param_5[5] = bVar21" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar25;" (assignment_expression "param_5[7] = bVar25" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[6] = (byte)local_10c;" (assignment_expression "param_5[6] = (byte)local_10c" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_10c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;" (assignment_expression "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" identifier = (binary_expression "local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" identifier + (binary_expression "(*(int *)(param_1 + 0x298) + iVar18) * 8" (parenthesized_expression "(*(int *)(param_1 + 0x298) + iVar18)" ( (binary_expression "*(int *)(param_1 + 0x298) + iVar18" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) + identifier) )) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4)" ( (binary_expression "iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4" identifier != (binary_expression "((uint)local_fc - 1 >> 1) * 4 + 4" (binary_expression "((uint)local_fc - 1 >> 1) * 4" (parenthesized_expression "((uint)local_fc - 1 >> 1)" ( (binary_expression "(uint)local_fc - 1 >> 1" (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) >> number_literal) )) * number_literal) + number_literal)) )) ;) })) }) (else_clause "else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" else (if_statement "if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" { (expression_statement "uVar29 = (uint)local_fc - 1;" (assignment_expression "uVar29 = (uint)local_fc - 1" identifier = (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal)) ;) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );" do (compound_statement "{\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x2a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) ))))) ;) (do_statement "do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);" do (compound_statement "{\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "uVar26 = (uint)(local_a8 + iVar18) % 3;" (assignment_expression "uVar26 = (uint)(local_a8 + iVar18) % 3" identifier = (binary_expression "(uint)(local_a8 + iVar18) % 3" (call_expression "(uint)(local_a8 + iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a8 + iVar18)" ( (binary_expression "local_a8 + iVar18" identifier + identifier) ))) % number_literal)) ;) (if_statement "if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" if (parenthesized_expression "(uVar26 == 1)" ( (binary_expression "uVar26 == 1" identifier == number_literal) )) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x14) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }) (else_clause "else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" else (if_statement "if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" if (parenthesized_expression "(uVar26 == 2)" ( (binary_expression "uVar26 == 2" identifier == number_literal) )) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x20) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }) (else_clause "else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" else (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" { (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" identifier = (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" identifier (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" ( (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 8) * 8)" ( (binary_expression "local_c4 + *(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)) )))) )))))) ;) }))))) (expression_statement "local_104 = (ulonglong)uStack_64;" (assignment_expression "local_104 = (ulonglong)uStack_64" identifier = (cast_expression "(ulonglong)uStack_64" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "adStack_44[iVar18] = (double)local_104;" (assignment_expression "adStack_44[iVar18] = (double)local_104" (subscript_expression "adStack_44[iVar18]" identifier [ identifier ]) = (cast_expression "(double)local_104" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != 4)" ( (binary_expression "iVar18 != 4" identifier != number_literal) )) ;) (expression_statement "local_a8 = local_a8 + 4;" (assignment_expression "local_a8 = local_a8 + 4" identifier = (binary_expression "local_a8 + 4" identifier + number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "iStack_b8 = 0;" (assignment_expression "iStack_b8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar11;\n            }" { (expression_statement "uVar26 = uVar11;" (assignment_expression "uVar26 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "local_bc = uVar16 - 1;" (assignment_expression "local_bc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" if (parenthesized_expression "(0.0 < adStack_44[1])" ( (binary_expression "0.0 < adStack_44[1]" number_literal < (subscript_expression "adStack_44[1]" identifier [ number_literal ])) )) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[1])" ( (binary_expression "(double)fVar1 * adStack_44[1]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[1]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" else (compound_statement "{\n                local_b4 = (longlong)ROUND(dVar3);\n              }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (if_statement "if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155924;" if (parenthesized_expression "(!NAN(adStack_44[0]))" ( (unary_expression "!NAN(adStack_44[0])" ! (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155924;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x0015590b;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x0015590b;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x0015590b:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[0]))" ( (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155924:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[0])" ( (binary_expression "0.0 < adStack_44[0]" number_literal < (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" ( (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155aac;" if (parenthesized_expression "(!NAN(adStack_44[2]))" ( (unary_expression "!NAN(adStack_44[2])" ! (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155aac;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155a93;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155a93;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155a93:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[2]))" ( (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155aac:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[2])" ( (binary_expression "0.0 < adStack_44[2]" number_literal < (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" ( (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }" { (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (if_statement "if (!NAN(adStack_44[3])) goto code_r0x00155c3d;" if (parenthesized_expression "(!NAN(adStack_44[3]))" ( (unary_expression "!NAN(adStack_44[3])" ! (call_expression "NAN(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155c3d;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155c13;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155c13;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);" statement_identifier : (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[3]))" ( (call_expression "NAN(adStack_44[3])" identifier (argument_list "(adStack_44[3])" ( (subscript_expression "adStack_44[3]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155c3d:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[3])" ( (binary_expression "0.0 < adStack_44[3]" number_literal < (subscript_expression "adStack_44[3]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[3])" ( (binary_expression "(double)fVar1 * adStack_44[3]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[3]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }" { (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155dc3;" if (parenthesized_expression "(!NAN(adStack_44[0]))" ( (unary_expression "!NAN(adStack_44[0])" ! (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155dc3;" goto statement_identifier ;)) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155db1;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155db1;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155db1:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[0]))" ( (call_expression "NAN(adStack_44[0])" identifier (argument_list "(adStack_44[0])" ( (subscript_expression "adStack_44[0]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_b4 = 0;\n            }" { (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155dc3:\n              local_b4 = 0;" statement_identifier : (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[0])" ( (binary_expression "0.0 < adStack_44[0]" number_literal < (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" ( (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[0]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) })) }))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" if (parenthesized_expression "((int)uVar11 < 1)" ( (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }" { (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155f45;" if (parenthesized_expression "(!NAN(adStack_44[2]))" ( (unary_expression "!NAN(adStack_44[2])" ! (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) )))) )) (goto_statement "goto code_r0x00155f45;" goto statement_identifier ;)) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) }) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" else (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" { (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" do (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            }" { (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" { (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n                  uVar17 = uVar11;\n                }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" if (parenthesized_expression "(-1 < (int)uVar16)" ( (binary_expression "-1 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar11 = uVar16;\n                }" { (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" { (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 != 0) break;" if (parenthesized_expression "(uVar26 != 0)" ( (binary_expression "uVar26 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" identifier = number_literal) ;) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155f33;" if (parenthesized_expression "((int)uVar16 < 1)" ( (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto code_r0x00155f33;" goto statement_identifier ;)) })) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "(0 < (int)uVar16)" ( (binary_expression "0 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (labeled_statement "code_r0x00155f33:\n            uVar11 = *param_3;" statement_identifier : (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(NAN(adStack_44[2]))" ( (call_expression "NAN(adStack_44[2])" identifier (argument_list "(adStack_44[2])" ( (subscript_expression "adStack_44[2]" identifier [ number_literal ]) ))) )) (compound_statement "{\n              local_fc = 0;\n            }" { (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" else (compound_statement "{\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" { (labeled_statement "code_r0x00155f45:\n              local_fc = 0;" statement_identifier : (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;)) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < adStack_44[2])" ( (binary_expression "0.0 < adStack_44[2]" number_literal < (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" identifier = (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_b8,local_bc)" identifier (argument_list "(iStack_b8,local_bc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_b8 < 0)" ( (binary_expression "iStack_b8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "local_fc = -1;" (assignment_expression "local_fc = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" ( (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * (subscript_expression "adStack_44[2]" identifier [ number_literal ])) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "local_fc = (longlong)ROUND(dVar3);" (assignment_expression "local_fc = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) }))) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) }))) (while_statement "while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar17)" ( (binary_expression "0 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar26;" (assignment_expression "uVar16 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar16 = uVar11;\n            }" { (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar17 = uVar11 - uVar16;" (assignment_expression "uVar17 = uVar11 - uVar16" identifier = (binary_expression "uVar11 - uVar16" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }" if (parenthesized_expression "(-1 < (int)uVar17)" ( (binary_expression "-1 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar17;\n            }" { (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar16;" (assignment_expression "uVar26 = uVar26 - uVar16" identifier = (binary_expression "uVar26 - uVar16" identifier - identifier)) ;) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_fc >> bVar25" (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "local_fc._4_4_ << 0x20 - bVar25" (field_expression "local_fc._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_fc._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;" (assignment_expression "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" identifier = (binary_expression "local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" identifier + (binary_expression "(local_74 + *(int *)(param_1 + 0x298)) * 8" (parenthesized_expression "(local_74 + *(int *)(param_1 + 0x298))" ( (binary_expression "local_74 + *(int *)(param_1 + 0x298)" identifier + (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) )) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (if_statement "if (local_a8 == (uVar29 >> 1) * 4 + 4) break;" if (parenthesized_expression "(local_a8 == (uVar29 >> 1) * 4 + 4)" ( (binary_expression "local_a8 == (uVar29 >> 1) * 4 + 4" identifier == (binary_expression "(uVar29 >> 1) * 4 + 4" (binary_expression "(uVar29 >> 1) * 4" (parenthesized_expression "(uVar29 >> 1)" ( (binary_expression "uVar29 >> 1" identifier >> number_literal) )) * number_literal) + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00139c20(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00139c20(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013bd70(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013bd70(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00136f80(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136f80(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xd:" case number_literal :) (case_statement "case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x0015533d:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xbaa;" (assignment_expression "uVar11 = 0xbaa" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" identifier = (string_literal ""ExportRedQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xbab;" (assignment_expression "uVar11 = 0xbab" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x0015742f:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x0015539d:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x0015742f;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015742f;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x0015539d;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x0015539d;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00152ff0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00152ff0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0013def0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013def0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" case number_literal : (labeled_statement "code_r0x00155065:\n      dVar5 = DAT_002a8000;" statement_identifier : (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;)) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x96d;" (assignment_expression "uVar11 = 0x96d" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" identifier = (string_literal ""ExportGreenQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0x96e;" (assignment_expression "uVar11 = 0x96e" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x10)" ( (binary_expression "uVar29 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier = (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" identifier (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" ( (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" ( (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" ( (type_descriptor "longdouble" type_identifier) ) identifier) * (parenthesized_expression "(longdouble)" ( identifier ))) * (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) ))) )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" if (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" ( (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" else (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" { (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 < 0x11)" ( (binary_expression "uVar29 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" { (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" if (parenthesized_expression "(uVar29 == 8)" ( (binary_expression "uVar29 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" { (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" identifier = (binary_expression "dVar3 / (double)DAT_002a7ff0" identifier / (cast_expression "(double)DAT_002a7ff0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" ( (binary_expression "dVar3 < (double)DAT_002a7ff4" identifier < (cast_expression "(double)DAT_002a7ff4" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) )))))) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" else (compound_statement "{\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" { (labeled_statement "code_r0x0015755d:\n          iStack_cc = 0;" statement_identifier : (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" identifier = number_literal) ;)) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" identifier = number_literal) ;) (if_statement "if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" if (parenthesized_expression "(uVar29 != 0)" ( (binary_expression "uVar29 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" { (labeled_statement "code_r0x001550c5:\n            uVar26 = 0;" statement_identifier : (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" identifier = number_literal) ;)) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" if (parenthesized_expression "(uVar29 < 0x41)" ( (binary_expression "uVar29 < 0x41" identifier < number_literal) )) (compound_statement "{\n              uVar26 = uVar29;\n            }" { (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" identifier = (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" identifier = identifier) ;) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" if (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" ( (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" ( (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" identifier = identifier) ;) })) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" identifier = (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" ( (binary_expression "uVar17 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) ))))) ;) })) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" { (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" { (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" if (parenthesized_expression "(0.0 < dVar3)" ( (binary_expression "0.0 < dVar3" number_literal < identifier) )) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" { (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" identifier = (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_c8,iStack_cc)" identifier (argument_list "(iStack_c8,iStack_cc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" if (parenthesized_expression "(iStack_c8 < 0)" ( (binary_expression "iStack_c8 < 0" identifier < number_literal) )) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" { (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" identifier = (binary_expression "fVar1 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" identifier = number_literal) ;) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" identifier = (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" ( (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" if (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" ( (binary_expression "dVar3 < (double)DAT_0029f714" identifier < (cast_expression "(double)DAT_0029f714" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" identifier = (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" if (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" ( (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" identifier = (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" identifier (argument_list "(dVar3 - (double)DAT_0029f134)" ( (binary_expression "dVar3 - (double)DAT_0029f134" identifier - (cast_expression "(double)DAT_0029f134" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" identifier (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)lVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" else (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" { (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" identifier = (cast_expression "(longlong)ROUND(dVar3)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3)" identifier (argument_list "(dVar3)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                param_3[0x14] = 8;\n              }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" while (parenthesized_expression "(0 < (int)uVar26)" ( (binary_expression "0 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" { (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" if (parenthesized_expression "(uVar29 <= uVar17)" ( (binary_expression "uVar29 <= uVar17" identifier <= identifier) )) (compound_statement "{\n                  uVar16 = uVar29;\n                }" { (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" identifier = identifier) ;) })) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" identifier = (binary_expression "uVar29 - uVar16" identifier - identifier)) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" if (parenthesized_expression "(-1 < (int)uVar26)" ( (binary_expression "-1 < (int)uVar26" number_literal < (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar29 = uVar26;\n                }" { (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" identifier = identifier) ;) })) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" if (parenthesized_expression "(uVar17 == 8)" ( (binary_expression "uVar17 == 8" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = 0;\n                }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" identifier = (binary_expression "uVar17 - uVar16" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" identifier = (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" { (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" identifier = (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar29 & 0x1f)" ( (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" ( (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar16 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar16 & 0x1f)" ( (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" if (parenthesized_expression "((uVar17 & 0x20) != 0)" ( (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  bVar25 = 0;\n                }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" identifier = (binary_expression "iStack_d4 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iStack_d4 == (uint)local_fc) break;" if (parenthesized_expression "(iStack_d4 == (uint)local_fc)" ( (binary_expression "iStack_d4 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) }))) }) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" if (parenthesized_expression "(uVar29 == 0x20)" ( (binary_expression "uVar29 == 0x20" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" identifier = (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" { (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" identifier = (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))) ;) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" if (parenthesized_expression "(dVar3 <= 0.0)" ( (binary_expression "dVar3 <= 0.0" identifier <= number_literal) )) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" else (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" else (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" else (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) }) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" else (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" { (if_statement "if (uVar29 != 0x40) goto code_r0x0015755d;" if (parenthesized_expression "(uVar29 != 0x40)" ( (binary_expression "uVar29 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015755d;" goto statement_identifier ;)) (if_statement "if (param_3[2] != 1) goto code_r0x001550c5;" if (parenthesized_expression "(param_3[2] != 1)" ( (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto code_r0x001550c5;" goto statement_identifier ;)) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" { (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" identifier = (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))) * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" if (parenthesized_expression "(uVar29 == 1)" ( (binary_expression "uVar29 == 1" identifier == number_literal) )) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" else (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_d4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)iStack_cc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))))))) (break_statement "break;" break ;)) (case_statement "case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00138a40(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00138a40(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_00136440(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136440(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154e20:\n      iVar13 = (uint)local_fc;" statement_identifier : (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" identifier = (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" identifier = identifier) ;) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" identifier = identifier) ;) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" { (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xb41;" (assignment_expression "uVar11 = 0xb41" identifier = number_literal) ;) (goto_statement "goto code_r0x00159158;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" if (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" { (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" identifier = (string_literal ""ExportOpacityQuantum"" " string_content ")) ;) (expression_statement "uVar11 = 0xb42;" (assignment_expression "uVar11 = 0xb42" identifier = number_literal) ;) (goto_statement "goto code_r0x00159135;" goto statement_identifier ;) })) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" if (parenthesized_expression "(uVar11 == 0x10)" ( (binary_expression "uVar11 == 0x10" identifier == number_literal) )) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" { (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" { (expression_statement "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" identifier = (binary_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" (parenthesized_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" ( (binary_expression "DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) )) * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier))) ;) })) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" identifier = (call_expression "FUN_00136290(fVar1)" identifier (argument_list "(fVar1)" ( identifier )))) ;) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" identifier = (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ushort)uVar10 >> 8)" ( (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" ( (type_descriptor "ushort" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" else (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" { (do_statement "do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" { (if_statement "if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" if (parenthesized_expression "(DAT_0029f710 <= fVar1)" ( (binary_expression "DAT_0029f710 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }" { (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" identifier = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" else (compound_statement "{\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" { (expression_statement "iVar18 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(int)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) ))))) ;) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" identifier = (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar18 >> 8)" ( (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) }))) })) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" { (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" else (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" { (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" identifier = (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" if (parenthesized_expression "(uVar11 < 0x11)" ( (binary_expression "uVar11 < 0x11" identifier < number_literal) )) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }" { (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 8)" ( (binary_expression "uVar11 == 8" identifier == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" { (expression_statement "fVar1 = fVar1 / DAT_002a7ff0;" (assignment_expression "fVar1 = fVar1 / DAT_002a7ff0" identifier = (binary_expression "fVar1 / DAT_002a7ff0" identifier / identifier)) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (if_statement "if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" if (parenthesized_expression "(fVar1 < DAT_002a7ff4)" ( (binary_expression "fVar1 < DAT_002a7ff4" identifier < identifier) )) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" { (expression_statement "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124)" identifier = (cast_expression "(byte)(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "byte" type_identifier) ) (cast_expression "(short)ROUND(fVar1 + DAT_0029f124)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (call_expression "ROUND(fVar1 + DAT_0029f124)" identifier (argument_list "(fVar1 + DAT_0029f124)" ( (binary_expression "fVar1 + DAT_0029f124" identifier + identifier) )))))) ;) })) })) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" identifier = (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x0015768b:\n        iStack_dc = 0;" statement_identifier : (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" identifier = number_literal) ;)) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" identifier = number_literal) ;) (if_statement "if (uVar11 != 0) goto code_r0x00154e80;" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00154e80;" goto statement_identifier ;)) }) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" else (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" { (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(uVar11 == 0x20)" ( (binary_expression "uVar11 == 0x20" identifier == number_literal) )) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" { (expression_statement "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) ;) }) (else_clause "else {\n                  fVar1 = 0.0;\n                }" else (compound_statement "{\n                  fVar1 = 0.0;\n                }" { (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" identifier = number_literal) ;) }))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" identifier = (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" identifier * (cast_expression "(float)dVar3" ( (type_descriptor "float" primitive_type) ) identifier)) + (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier))) ;) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" identifier = (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 8)" ( (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x18)" ( (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" identifier = (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)fVar1 >> 0x10)" ( (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (call_expression "SUB41(fVar1,0)" identifier (argument_list "(fVar1,0)" ( identifier , number_literal )))) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" else (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" { (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" do (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" { (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" ( (comma_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) , (binary_expression "dVar3 <= 0.0" identifier <= number_literal)) ))) )) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" { (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" else (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" { (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" identifier = (binary_expression "dVar3 * (double)DAT_002a7fec" identifier * (cast_expression "(double)DAT_002a7fec" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" if (parenthesized_expression "(dVar5 <= dVar3)" ( (binary_expression "dVar5 <= dVar3" identifier <= identifier) )) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" { (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" identifier = number_literal) ;) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" identifier = number_literal) ;) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" identifier = number_literal) ;) }) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" else (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" { (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" identifier = (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" identifier (argument_list "(dVar3 + (double)DAT_0029f124)" ( (binary_expression "dVar3 + (double)DAT_0029f124" identifier + (cast_expression "(double)DAT_0029f124" ( (type_descriptor "double" primitive_type) ) identifier)) ))))) ;) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" identifier . field_identifier) = (cast_expression "(byte)lVar4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 8)" ( (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x18)" ( (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" identifier = (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x10)" ( (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) }))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" if (parenthesized_expression "(param_3[0x10] == 1)" ( (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" { (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" * identifier) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" else (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" { (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_64" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" identifier = (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != (uint)local_fc)" ( (binary_expression "iVar13 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) }))) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (if_statement "if (uVar11 != 0x40) goto code_r0x0015768b;" if (parenthesized_expression "(uVar11 != 0x40)" ( (binary_expression "uVar11 != 0x40" identifier != number_literal) )) (goto_statement "goto code_r0x0015768b;" goto statement_identifier ;)) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" if (parenthesized_expression "(param_3[2] == 1)" ( (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" { (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" { (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" identifier = (pointer_expression "*(double *)(param_3 + 0x11)" * (cast_expression "(double *)(param_3 + 0x11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x11)" ( (binary_expression "param_3 + 0x11" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" identifier = (pointer_expression "*(double *)(param_3 + 3)" * (cast_expression "(double *)(param_3 + 3)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 3)" ( (binary_expression "param_3 + 3" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" do (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" { (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }" if (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" { (expression_statement "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "(double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" ( (type_descriptor "double" primitive_type) ) identifier) - (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) )))))) ;) }) (else_clause "else {\n                dVar6 = 0.0;\n              }" else (compound_statement "{\n                dVar6 = 0.0;\n              }" { (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" identifier = number_literal) ;) }))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" identifier = (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" identifier * identifier) + identifier)) ;) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x28)" ( (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 8)" ( (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x38)" ( (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" identifier = (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x20)" ( (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "uStack_f4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x18)" ( (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_fc._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x30)" ( (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_e4._0_1_" identifier . field_identifier) = (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((ulonglong)dVar6 >> 0x10)" ( (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" if (parenthesized_expression "(uVar11 == 1)" ( (binary_expression "uVar11 == 1" identifier == number_literal) )) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }" { (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" * identifier) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[2] = (byte)uStack_e4;" (assignment_expression "param_5[2] = (byte)uStack_e4" (subscript_expression "param_5[2]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[3] = (byte)uStack_f4;" (assignment_expression "param_5[3] = (byte)uStack_f4" (subscript_expression "param_5[3]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = (byte)local_fc;" (assignment_expression "param_5[6] = (byte)local_fc" (subscript_expression "param_5[6]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" else (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" { (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" identifier [ number_literal ]) = (call_expression "SUB81(dVar6,0)" identifier (argument_list "(dVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "param_5[4] = (byte)uStack_f4;" (assignment_expression "param_5[4] = (byte)uStack_f4" (subscript_expression "param_5[4]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_f4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[1] = (byte)local_fc;" (assignment_expression "param_5[1] = (byte)local_fc" (subscript_expression "param_5[1]" identifier [ number_literal ]) = (cast_expression "(byte)local_fc" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[5] = (byte)uStack_e4;" (assignment_expression "param_5[5] = (byte)uStack_e4" (subscript_expression "param_5[5]" identifier [ number_literal ]) = (cast_expression "(byte)uStack_e4" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" identifier = (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ])) + number_literal)) ;) }) while (parenthesized_expression "(iVar18 != iVar13)" ( (binary_expression "iVar18 != iVar13" identifier != identifier) )) ;) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;) })) (labeled_statement "code_r0x00154e80:\n        uVar29 = 0;" statement_identifier : (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;)) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" if (parenthesized_expression "(uVar11 < 0x41)" ( (binary_expression "uVar11 < 0x41" identifier < number_literal) )) (compound_statement "{\n          uVar29 = uVar11;\n        }" { (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) })) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" identifier = (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar29 - 1)" ( (binary_expression "uVar29 - 1" identifier - number_literal) )))) ;) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" identifier = (binary_expression "bVar19 & 0x1f" identifier & number_literal)) ;) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" identifier = (binary_expression "2 << (bVar19 & 0x1f)" number_literal << (parenthesized_expression "(bVar19 & 0x1f)" ( (binary_expression "bVar19 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" identifier = (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" number_literal << identifier) | (binary_expression "2U >> 0x20 - bVar25" number_literal >> (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" if (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" ( (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" ( (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" identifier = identifier) ;) })) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" identifier = (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" ( (binary_expression "uVar26 - 1" identifier - number_literal) )) + (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" { (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" { (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" ( (comma_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier = (binary_expression "DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" identifier - (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" * (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" ( (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" identifier + (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) )))) * number_literal)) ))))))) , (binary_expression "0.0 < fVar1" number_literal < identifier)) ))) )) (compound_statement "{\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" { (expression_statement "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc)" identifier = (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" ( (type_descriptor "float" primitive_type) ) (call_expression "CONCAT44(iStack_d8,iStack_dc)" identifier (argument_list "(iStack_d8,iStack_dc)" ( identifier , identifier ))))) ;) (if_statement "if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }" if (parenthesized_expression "(iStack_d8 < 0)" ( (binary_expression "iStack_d8 < 0" identifier < number_literal) )) (compound_statement "{\n              fVar8 = fVar8 + DAT_0029f714;\n            }" { (expression_statement "fVar8 = fVar8 + DAT_0029f714;" (assignment_expression "fVar8 = fVar8 + DAT_0029f714" identifier = (binary_expression "fVar8 + DAT_0029f714" identifier + identifier)) ;) })) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" identifier = number_literal) ;) (expression_statement "fVar1 = (fVar8 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar8 * fVar1) / DAT_0029f710" identifier = (binary_expression "(fVar8 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar8 * fVar1)" ( (binary_expression "fVar8 * fVar1" identifier * identifier) )) / identifier)) ;) (if_statement "if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" if (parenthesized_expression "(fVar1 < DAT_0029f714)" ( (binary_expression "fVar1 < DAT_0029f714" identifier < identifier) )) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" { (expression_statement "fVar1 = fVar1 + DAT_0029f124;" (assignment_expression "fVar1 = fVar1 + DAT_0029f124" identifier = (binary_expression "fVar1 + DAT_0029f124" identifier + identifier)) ;) (if_statement "if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" if (parenthesized_expression "(DAT_0029f134 <= fVar1)" ( (binary_expression "DAT_0029f134 <= fVar1" identifier <= identifier) )) (compound_statement "{\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }" { (expression_statement "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" ( (binary_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20" (cast_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) >> number_literal) )))) ;) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier = (call_expression "CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" identifier (argument_list "(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" ( (binary_expression "iStack_60 + -0x80000000" identifier + number_literal) , (cast_expression "(int)(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1 - DAT_0029f134)" identifier (argument_list "(fVar1 - DAT_0029f134)" ( (binary_expression "fVar1 - DAT_0029f134" identifier - identifier) ))))) )))) ;) }) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" else (compound_statement "{\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" { (expression_statement "uStack_f4 = (longlong)ROUND(fVar1);" (assignment_expression "uStack_f4 = (longlong)ROUND(fVar1)" identifier = (cast_expression "(longlong)ROUND(fVar1)" ( (type_descriptor "longlong" type_identifier) ) (call_expression "ROUND(fVar1)" identifier (argument_list "(fVar1)" ( identifier ))))) ;) }))) })) })) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" identifier = identifier) ;) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" if (parenthesized_expression "(param_3[0x14] == 0)" ( (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            param_3[0x14] = 8;\n          }" { (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" while (parenthesized_expression "(0 < (int)uVar29)" ( (binary_expression "0 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" { (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" identifier = (subscript_expression "param_3[0x14]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" identifier = identifier) ;) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" if (parenthesized_expression "(uVar11 <= uVar26)" ( (binary_expression "uVar11 <= uVar26" identifier <= identifier) )) (compound_statement "{\n              uVar17 = uVar11;\n            }" { (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" identifier = identifier) ;) })) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" identifier = (binary_expression "uVar11 - uVar17" identifier - identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" if (parenthesized_expression "(-1 < (int)uVar29)" ( (binary_expression "-1 < (int)uVar29" number_literal < (cast_expression "(int)uVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              uVar11 = uVar29;\n            }" { (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" identifier = identifier) ;) })) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" if (parenthesized_expression "(uVar26 == 8)" ( (binary_expression "uVar26 == 8" identifier == number_literal) )) (compound_statement "{\n              *param_5 = 0;\n            }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" identifier = (binary_expression "uVar26 - uVar17" identifier - identifier)) ;) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" identifier = (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" identifier = (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" ( (type_descriptor "uint" type_identifier) ) identifier) >> identifier) | (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" identifier . field_identifier) << (binary_expression "0x20 - bVar25" number_literal - identifier)))) ;) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" if (parenthesized_expression "((uVar11 & 0x20) != 0)" ( (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" ( (binary_expression "uVar11 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" { (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" identifier = (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" identifier . field_identifier) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" identifier = (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" ( (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" ( (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" ~ (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" ( (binary_expression "-1 << ((byte)uVar17 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar17 & 0x1f)" ( (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) & identifier) )) << (parenthesized_expression "((byte)uVar26 & 0x1f)" ( (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" if (parenthesized_expression "((uVar26 & 0x20) != 0)" ( (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" ( (binary_expression "uVar26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar25 = 0;\n            }" { (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) })) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" * identifier) = (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" * identifier) | identifier)) ;) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" { (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" identifier = (binary_expression "param_5 + 1" identifier + number_literal)) ;) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" identifier = (binary_expression "param_5 + param_3[9]" identifier + (subscript_expression "param_3[9]" identifier [ number_literal ]))) ;) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" identifier = (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" identifier + (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) * number_literal))) ;) (if_statement "if (iVar13 == (uint)local_fc) break;" if (parenthesized_expression "(iVar13 == (uint)local_fc)" ( (binary_expression "iVar13 == (uint)local_fc" identifier == (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) })) })) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;" case number_literal : (labeled_statement "code_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00149950(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00149950(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" case number_literal : (labeled_statement "code_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);" statement_identifier : (expression_statement "FUN_0014cb30(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014cb30(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) (case_statement "case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);" case number_literal : (labeled_statement "code_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;" statement_identifier : (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar30" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "FUN_001430e0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_001430e0(uVar30,local_c4,param_5,param_6)" identifier (argument_list "(uVar30,local_c4,param_5,param_6)" ( identifier , identifier , identifier , identifier ))) ;)) })) (if_statement "if (1 < uVar11) goto LAB_001548a8;" if (parenthesized_expression "(1 < uVar11)" ( (binary_expression "1 < uVar11" number_literal < identifier) )) (goto_statement "goto LAB_001548a8;" goto statement_identifier ;)) }))) (if_statement "if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }" { (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" identifier = (call_expression "GetAuthenticPixelQueue(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" else (compound_statement "{\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" { (expression_statement "iVar13 = GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "iVar13 = GetCacheViewAuthenticPixelQueue(param_2)" identifier = (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }))) (if_statement "if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" if (parenthesized_expression "(0 < (int)(uint)local_fc)" ( (binary_expression "0 < (int)(uint)local_fc" number_literal < (cast_expression "(int)(uint)local_fc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier))) )) (compound_statement "{\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" { (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" identifier = (pointer_expression "*(int *)(param_1 + 0x298)" * (cast_expression "(int *)(param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" * (cast_expression "(int *)(param_1 + 0x2a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a8)" ( (binary_expression "param_1 + 0x2a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8)" identifier = (cast_expression "(undefined8 *)(iVar13 + iVar27 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + iVar27 * 8)" ( (binary_expression "iVar13 + iVar27 * 8" identifier + (binary_expression "iVar27 * 8" identifier * number_literal)) )))) ;) (do_statement "do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);" do (compound_statement "{\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    }" { (expression_statement "uVar30 = *puVar14;" (assignment_expression "uVar30 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "*puVar14 = puVar14[iVar28 - iVar27];" (assignment_expression "*puVar14 = puVar14[iVar28 - iVar27]" (pointer_expression "*puVar14" * identifier) = (subscript_expression "puVar14[iVar28 - iVar27]" identifier [ (binary_expression "iVar28 - iVar27" identifier - identifier) ])) ;) (expression_statement "puVar14[iVar28 - iVar27] = uVar30;" (assignment_expression "puVar14[iVar28 - iVar27] = uVar30" (subscript_expression "puVar14[iVar28 - iVar27]" identifier [ (binary_expression "iVar28 - iVar27" identifier - identifier) ]) = identifier) ;) (expression_statement "puVar14 = puVar14 + iVar18;" (assignment_expression "puVar14 = puVar14 + iVar18" identifier = (binary_expression "puVar14 + iVar18" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar24 != (uint)local_fc)" ( (binary_expression "iVar24 != (uint)local_fc" identifier != (cast_expression "(uint)local_fc" ( (type_descriptor "uint" type_identifier) ) identifier)) )) ;) })) (labeled_statement "LAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\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    return local_c0;\n  }" { (return_statement "return local_c0;" return identifier ;) }))) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) })) (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (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 (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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 (subscript_expression IDENT [ (subscript_expression IDENT [ LIT ]) ]) * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_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 != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (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)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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) ) IDENT)) )))))) ;) }))) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 (field_expression IDENT . field_identifier) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (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)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) || (parenthesized_expression ( (comma_expression (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)) ))))) , (binary_expression IDENT <= LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (comma_expression (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)) ))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) || (parenthesized_expression ( (comma_expression (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)) ))))) , (binary_expression IDENT <= LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (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)) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (comma_expression (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)) ))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case 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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 + (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)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (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 (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))))))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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)) )))) )))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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)) )))) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) )))))) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT << LIT) | IDENT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) >> LIT) )) * LIT) + LIT)) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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)) )))) )))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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)) )))) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) )))))) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (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 = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ])) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) }))) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT) + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case 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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 + (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)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (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 (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))))))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case 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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 + (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)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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 LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) 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 + (cast_expression ( (type_descriptor TYPE) ) 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) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) ))))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (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 (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))))))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) * LIT)) )))))) )) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (comma_expression (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 + (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)) ))))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) ))))) ;) (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (comma_expression (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 + (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)) ))))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) )))))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (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 + (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)) ))))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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)) )))))) , (binary_expression IDENT <= LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (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)) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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 (pointer_expression * IDENT) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression LIT << IDENT) | (binary_expression LIT >> (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (comma_expression (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 + (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)) ))))))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) ))))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (while_statement while (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> IDENT) | (binary_expression (field_expression IDENT . field_identifier) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) & IDENT) )) << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined4\nExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    \n  FUN_0029eab0();\n}" (type_identifier "undefined4") (function_declarator "ExportQuantumPixels(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" (identifier "ExportQuantumPixels") (parameter_list "(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "byte *param_5" (type_identifier "byte") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  double dVar3;\n  longlong lVar4;\n  double dVar5;\n  double dVar6;\n  int *piVar7;\n  float fVar8;\n  double dVar9;\n  undefined2 uVar10;\n  uint uVar11;\n  double *pdVar12;\n  int iVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  uint uVar16;\n  uint uVar17;\n  int iVar18;\n  byte bVar19;\n  double *pdVar20;\n  byte bVar21;\n  byte bVar22;\n  int *piVar23;\n  int iVar24;\n  byte bVar25;\n  uint uVar26;\n  int iVar27;\n  int iVar28;\n  uint uVar29;\n  int in_GS_OFFSET;\n  undefined8 uVar30;\n  char *pcVar31;\n  ulonglong local_10c;\n  ulonglong local_104;\n  undefined8 local_fc;\n  undefined8 uStack_f4;\n  byte bStack_ec;\n  undefined8 uStack_e4;\n  int iStack_dc;\n  int iStack_d8;\n  int iStack_d4;\n  int iStack_cc;\n  int iStack_c8;\n  int local_c4;\n  undefined4 local_c0;\n  int local_bc;\n  int iStack_b8;\n  undefined8 local_b4;\n  int local_a8;\n  int local_74;\n  uint uStack_64;\n  int iStack_60;\n  double adStack_44 [4];\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }\n  if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }\n  if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }\n  if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }\n  uVar11 = param_4 - 7;\n  if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }\n  if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }\n  if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }\nLAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }\n                    \n  FUN_0029eab0();\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "longlong lVar4;" (type_identifier "longlong") (identifier "lVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "double dVar6;" (primitive_type "double") (identifier "dVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "float fVar8;" (primitive_type "float") (identifier "fVar8") (; ";")) (declaration "double dVar9;" (primitive_type "double") (identifier "dVar9") (; ";")) (declaration "undefined2 uVar10;" (type_identifier "undefined2") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "double *pdVar12;" (primitive_type "double") (pointer_declarator "*pdVar12" (* "*") (identifier "pdVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "double *pdVar20;" (primitive_type "double") (pointer_declarator "*pdVar20" (* "*") (identifier "pdVar20")) (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "byte bVar22;" (type_identifier "byte") (identifier "bVar22") (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "byte bVar25;" (type_identifier "byte") (identifier "bVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar30;" (type_identifier "undefined8") (identifier "uVar30") (; ";")) (declaration "char *pcVar31;" (primitive_type "char") (pointer_declarator "*pcVar31" (* "*") (identifier "pcVar31")) (; ";")) (declaration "ulonglong local_10c;" (type_identifier "ulonglong") (identifier "local_10c") (; ";")) (declaration "ulonglong local_104;" (type_identifier "ulonglong") (identifier "local_104") (; ";")) (declaration "undefined8 local_fc;" (type_identifier "undefined8") (identifier "local_fc") (; ";")) (declaration "undefined8 uStack_f4;" (type_identifier "undefined8") (identifier "uStack_f4") (; ";")) (declaration "byte bStack_ec;" (type_identifier "byte") (identifier "bStack_ec") (; ";")) (declaration "undefined8 uStack_e4;" (type_identifier "undefined8") (identifier "uStack_e4") (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "int iStack_d8;" (primitive_type "int") (identifier "iStack_d8") (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "undefined4 local_c0;" (type_identifier "undefined4") (identifier "local_c0") (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "int iStack_b8;" (primitive_type "int") (identifier "iStack_b8") (; ";")) (declaration "undefined8 local_b4;" (type_identifier "undefined8") (identifier "local_b4") (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "uint uStack_64;" (type_identifier "uint") (identifier "uStack_64") (; ";")) (declaration "int iStack_60;" (primitive_type "int") (identifier "iStack_60") (; ";")) (declaration "double adStack_44 [4];" (primitive_type "double") (array_declarator "adStack_44 [4]" (identifier "adStack_44") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (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")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,\n                  "ExportQuantumPixels")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (number_literal "0xf30") (, ",") (string_literal ""ExportQuantumPixels"" (" """) (string_content "ExportQuantumPixels") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" (* "*") (cast_expression "(int *)(param_1 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3344)" (( "(") (binary_expression "param_1 + 0x3344" (identifier "param_1") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,\n                  "ExportQuantumPixels")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (number_literal "0xf31") (, ",") (string_literal ""ExportQuantumPixels"" (" """) (string_content "ExportQuantumPixels") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" (* "*") (cast_expression "(int *)(param_1 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3328)" (( "(") (binary_expression "param_1 + 0x3328" (identifier "param_1") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318);" (call_expression "LogMagickEvent(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,&DAT_002b6e4e,\n                   param_1 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (string_literal ""ExportQuantumPixels"" (" """) (string_content "ExportQuantumPixels") (" """)) (, ",") (number_literal "0xf33") (, ",") (pointer_expression "&DAT_002b6e4e" (& "&") (identifier "DAT_002b6e4e")) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == (uint *)0x0) {\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" (if "if") (parenthesized_expression "(param_3 == (uint *)0x0)" (( "(") (binary_expression "param_3 == (uint *)0x0" (identifier "param_3") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");\n  }" ({ "{") (expression_statement "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" (identifier "__assert_fail") (argument_list "("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,\n                  "ExportQuantumPixels")" (( "(") (string_literal ""quantum_info != (QuantumInfo *) NULL"" (" """) (string_content "quantum_info != (QuantumInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (number_literal "0xf34") (, ",") (string_literal ""ExportQuantumPixels"" (" """) (string_content "ExportQuantumPixels") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3[0x17] != 0xabacadab) {\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" (if "if") (parenthesized_expression "(param_3[0x17] != 0xabacadab)" (( "(") (binary_expression "param_3[0x17] != 0xabacadab" (subscript_expression "param_3[0x17]" (identifier "param_3") ([ "[") (number_literal "0x17") (] "]")) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");\n  }" ({ "{") (expression_statement "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels");" (call_expression "__assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" (identifier "__assert_fail") (argument_list "("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                  0xf35,"ExportQuantumPixels")" (( "(") (string_literal ""quantum_info->signature == MagickCoreSignature"" (" """) (string_content "quantum_info->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (number_literal "0xf35") (, ",") (string_literal ""ExportQuantumPixels"" (" """) (string_content "ExportQuantumPixels") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_5 == (byte *)0x0) {\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" (if "if") (parenthesized_expression "(param_5 == (byte *)0x0)" (( "(") (binary_expression "param_5 == (byte *)0x0" (identifier "param_5") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_5 = (byte *)GetQuantumPixels(param_3);\n  }" ({ "{") (expression_statement "param_5 = (byte *)GetQuantumPixels(param_3);" (assignment_expression "param_5 = (byte *)GetQuantumPixels(param_3)" (identifier "param_5") (= "=") (cast_expression "(byte *)GetQuantumPixels(param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetQuantumPixels(param_3)" (identifier "GetQuantumPixels") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar11 = param_4 - 7;" (assignment_expression "uVar11 = param_4 - 7" (identifier "uVar11") (= "=") (binary_expression "param_4 - 7" (identifier "param_4") (- "-") (number_literal "7"))) (; ";")) (if_statement "if (param_2 == 0) {\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }\n  else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar30 = GetImageExtent(param_1);\n    local_c4 = GetVirtualPixelQueue(param_1);\n    if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }\nLAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;\nLAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;\n    iVar13 = GetAuthenticPixelQueue(param_1);\n    if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }\n  }" ({ "{") (expression_statement "uVar30 = GetImageExtent(param_1);" (assignment_expression "uVar30 = GetImageExtent(param_1)" (identifier "uVar30") (= "=") (call_expression "GetImageExtent(param_1)" (identifier "GetImageExtent") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "local_c4 = GetVirtualPixelQueue(param_1);" (assignment_expression "local_c4 = GetVirtualPixelQueue(param_1)" (identifier "local_c4") (= "=") (call_expression "GetVirtualPixelQueue(param_1)" (identifier "GetVirtualPixelQueue") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (param_3[0xc] == 1) {\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" (if "if") (parenthesized_expression "(param_3[0xc] == 1)" (( "(") (binary_expression "param_3[0xc] == 1" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);\n      goto LAB_001548e3;\n    }" ({ "{") (expression_statement "pdVar12 = (double *)GetAuthenticPixelQueue(param_1);" (assignment_expression "pdVar12 = (double *)GetAuthenticPixelQueue(param_1)" (identifier "pdVar12") (= "=") (cast_expression "(double *)GetAuthenticPixelQueue(param_1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetAuthenticPixelQueue(param_1)" (identifier "GetAuthenticPixelQueue") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (goto_statement "goto LAB_001548e3;" (goto "goto") (statement_identifier "LAB_001548e3") (; ";")) (} "}"))) (labeled_statement "LAB_001547f3:\n    if (1 < uVar11) goto LAB_001547fe;" (statement_identifier "LAB_001547f3") (: ":") (if_statement "if (1 < uVar11) goto LAB_001547fe;" (if "if") (parenthesized_expression "(1 < uVar11)" (( "(") (binary_expression "1 < uVar11" (number_literal "1") (< "<") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_001547fe;" (goto "goto") (statement_identifier "LAB_001547fe") (; ";")))) (labeled_statement "LAB_00154999:\n    local_fc._0_4_ = (uint)uVar30;" (statement_identifier "LAB_00154999") (: ":") (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" (identifier "local_fc") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30"))) (; ";"))) (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" (identifier "iVar13") (= "=") (call_expression "GetAuthenticPixelQueue(param_1)" (identifier "GetAuthenticPixelQueue") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n      iVar28 = *(int *)(param_1 + 0x298);\n      iVar24 = 0;\n      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);\n      do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar28 = *(int *)(param_1 + 0x298)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar18 * 8)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)(iVar13 + iVar18 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + iVar18 * 8)" (( "(") (binary_expression "iVar13 + iVar18 * 8" (identifier "iVar13") (+ "+") (binary_expression "iVar18 * 8" (identifier "iVar18") (* "*") (number_literal "8"))) () ")")))) (; ";")) (do_statement "do {\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      } while (iVar24 != (uint)local_fc);" (do "do") (compound_statement "{\n        uVar2 = *puVar14;\n        iVar24 = iVar24 + 1;\n        *puVar14 = puVar14[iVar27 - iVar18];\n        puVar14[iVar27 - iVar18] = uVar2;\n        puVar14 = puVar14 + iVar28;\n      }" ({ "{") (expression_statement "uVar2 = *puVar14;" (assignment_expression "uVar2 = *puVar14" (identifier "uVar2") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar14 = puVar14[iVar27 - iVar18];" (assignment_expression "*puVar14 = puVar14[iVar27 - iVar18]" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (subscript_expression "puVar14[iVar27 - iVar18]" (identifier "puVar14") ([ "[") (binary_expression "iVar27 - iVar18" (identifier "iVar27") (- "-") (identifier "iVar18")) (] "]"))) (; ";")) (expression_statement "puVar14[iVar27 - iVar18] = uVar2;" (assignment_expression "puVar14[iVar27 - iVar18] = uVar2" (subscript_expression "puVar14[iVar27 - iVar18]" (identifier "puVar14") ([ "[") (binary_expression "iVar27 - iVar18" (identifier "iVar27") (- "-") (identifier "iVar18")) (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar14 = puVar14 + iVar28;" (assignment_expression "puVar14 = puVar14 + iVar28" (identifier "puVar14") (= "=") (binary_expression "puVar14 + iVar28" (identifier "puVar14") (+ "+") (identifier "iVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != (uint)local_fc)" (( "(") (binary_expression "iVar24 != (uint)local_fc" (identifier "iVar24") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" (identifier "FUN_00135560") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" (identifier "local_c0") (= "=") (call_expression "GetQuantumExtent(param_1,param_3,param_4)" (identifier "GetQuantumExtent") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (switch_statement "switch(param_4) {\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" (switch "switch") (parenthesized_expression "(param_4)" (( "(") (identifier "param_4") () ")")) (compound_statement "{\n    case 1:\n      goto code_r0x00154c08;\n    case 2:\n      goto code_r0x00156619;\n    case 3:\n      goto code_r0x001565ed;\n    case 4:\n      goto code_r0x00154848;\n    case 5:\n      goto code_r0x00156375;\n    case 6:\n    case 0x1a:\n      goto code_r0x001560f3;\n    case 7:\n    case 0x16:\n      goto code_r0x001560c7;\n    case 8:\n    case 0x19:\n      goto code_r0x00154a5f;\n    case 9:\n      goto code_r0x00155641;\n    case 10:\n      goto code_r0x00155615;\n    case 0xb:\n      goto code_r0x001555e9;\n    case 0xc:\n      goto code_r0x001555bd;\n    case 0xd:\n    case 0x15:\n      goto code_r0x0015533d;\n    case 0xe:\n      goto code_r0x00155311;\n    case 0xf:\n      goto code_r0x001552e5;\n    case 0x10:\n    case 0x13:\n      goto code_r0x00155065;\n    case 0x11:\n      goto code_r0x00155039;\n    case 0x12:\n      goto code_r0x0015500d;\n    case 0x14:\n      goto code_r0x00154e20;\n    case 0x17:\n      goto code_r0x00154df4;\n    }" ({ "{") (case_statement "case 1:\n      goto code_r0x00154c08;" (case "case") (number_literal "1") (: ":") (goto_statement "goto code_r0x00154c08;" (goto "goto") (statement_identifier "code_r0x00154c08") (; ";"))) (case_statement "case 2:\n      goto code_r0x00156619;" (case "case") (number_literal "2") (: ":") (goto_statement "goto code_r0x00156619;" (goto "goto") (statement_identifier "code_r0x00156619") (; ";"))) (case_statement "case 3:\n      goto code_r0x001565ed;" (case "case") (number_literal "3") (: ":") (goto_statement "goto code_r0x001565ed;" (goto "goto") (statement_identifier "code_r0x001565ed") (; ";"))) (case_statement "case 4:\n      goto code_r0x00154848;" (case "case") (number_literal "4") (: ":") (goto_statement "goto code_r0x00154848;" (goto "goto") (statement_identifier "code_r0x00154848") (; ";"))) (case_statement "case 5:\n      goto code_r0x00156375;" (case "case") (number_literal "5") (: ":") (goto_statement "goto code_r0x00156375;" (goto "goto") (statement_identifier "code_r0x00156375") (; ";"))) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 0x1a:\n      goto code_r0x001560f3;" (case "case") (number_literal "0x1a") (: ":") (goto_statement "goto code_r0x001560f3;" (goto "goto") (statement_identifier "code_r0x001560f3") (; ";"))) (case_statement "case 7:" (case "case") (number_literal "7") (: ":")) (case_statement "case 0x16:\n      goto code_r0x001560c7;" (case "case") (number_literal "0x16") (: ":") (goto_statement "goto code_r0x001560c7;" (goto "goto") (statement_identifier "code_r0x001560c7") (; ";"))) (case_statement "case 8:" (case "case") (number_literal "8") (: ":")) (case_statement "case 0x19:\n      goto code_r0x00154a5f;" (case "case") (number_literal "0x19") (: ":") (goto_statement "goto code_r0x00154a5f;" (goto "goto") (statement_identifier "code_r0x00154a5f") (; ";"))) (case_statement "case 9:\n      goto code_r0x00155641;" (case "case") (number_literal "9") (: ":") (goto_statement "goto code_r0x00155641;" (goto "goto") (statement_identifier "code_r0x00155641") (; ";"))) (case_statement "case 10:\n      goto code_r0x00155615;" (case "case") (number_literal "10") (: ":") (goto_statement "goto code_r0x00155615;" (goto "goto") (statement_identifier "code_r0x00155615") (; ";"))) (case_statement "case 0xb:\n      goto code_r0x001555e9;" (case "case") (number_literal "0xb") (: ":") (goto_statement "goto code_r0x001555e9;" (goto "goto") (statement_identifier "code_r0x001555e9") (; ";"))) (case_statement "case 0xc:\n      goto code_r0x001555bd;" (case "case") (number_literal "0xc") (: ":") (goto_statement "goto code_r0x001555bd;" (goto "goto") (statement_identifier "code_r0x001555bd") (; ";"))) (case_statement "case 0xd:" (case "case") (number_literal "0xd") (: ":")) (case_statement "case 0x15:\n      goto code_r0x0015533d;" (case "case") (number_literal "0x15") (: ":") (goto_statement "goto code_r0x0015533d;" (goto "goto") (statement_identifier "code_r0x0015533d") (; ";"))) (case_statement "case 0xe:\n      goto code_r0x00155311;" (case "case") (number_literal "0xe") (: ":") (goto_statement "goto code_r0x00155311;" (goto "goto") (statement_identifier "code_r0x00155311") (; ";"))) (case_statement "case 0xf:\n      goto code_r0x001552e5;" (case "case") (number_literal "0xf") (: ":") (goto_statement "goto code_r0x001552e5;" (goto "goto") (statement_identifier "code_r0x001552e5") (; ";"))) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x13:\n      goto code_r0x00155065;" (case "case") (number_literal "0x13") (: ":") (goto_statement "goto code_r0x00155065;" (goto "goto") (statement_identifier "code_r0x00155065") (; ";"))) (case_statement "case 0x11:\n      goto code_r0x00155039;" (case "case") (number_literal "0x11") (: ":") (goto_statement "goto code_r0x00155039;" (goto "goto") (statement_identifier "code_r0x00155039") (; ";"))) (case_statement "case 0x12:\n      goto code_r0x0015500d;" (case "case") (number_literal "0x12") (: ":") (goto_statement "goto code_r0x0015500d;" (goto "goto") (statement_identifier "code_r0x0015500d") (; ";"))) (case_statement "case 0x14:\n      goto code_r0x00154e20;" (case "case") (number_literal "0x14") (: ":") (goto_statement "goto code_r0x00154e20;" (goto "goto") (statement_identifier "code_r0x00154e20") (; ";"))) (case_statement "case 0x17:\n      goto code_r0x00154df4;" (case "case") (number_literal "0x17") (: ":") (goto_statement "goto code_r0x00154df4;" (goto "goto") (statement_identifier "code_r0x00154df4") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" (else "else") (compound_statement "{\n    uVar30 = GetCacheViewExtent(param_2);\n    local_c4 = GetCacheViewVirtualPixelQueue(param_2);\n    if (param_3[0xc] != 1) goto LAB_001547f3;\n    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);\nLAB_001548e3:\n    dVar3 = _DAT_0029f148;\n    iVar13 = *(int *)(param_1 + 0x18);\n    if (iVar13 < 1) goto LAB_001547f3;\n    piVar7 = *(int **)(param_1 + 0x2a8);\n    iVar18 = piVar7[0xd];\n    iVar27 = *(int *)(param_1 + 0x298);\n    iVar28 = 0;\n    do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);\n    if (uVar11 < 2) goto LAB_00154999;\nLAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;\n    FUN_00135560(param_3);\n    local_c0 = GetQuantumExtent(param_1,param_3,param_4);\n    switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }\n    if (1 < uVar11) goto LAB_001548a8;\n  }" ({ "{") (expression_statement "uVar30 = GetCacheViewExtent(param_2);" (assignment_expression "uVar30 = GetCacheViewExtent(param_2)" (identifier "uVar30") (= "=") (call_expression "GetCacheViewExtent(param_2)" (identifier "GetCacheViewExtent") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_c4 = GetCacheViewVirtualPixelQueue(param_2);" (assignment_expression "local_c4 = GetCacheViewVirtualPixelQueue(param_2)" (identifier "local_c4") (= "=") (call_expression "GetCacheViewVirtualPixelQueue(param_2)" (identifier "GetCacheViewVirtualPixelQueue") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (param_3[0xc] != 1) goto LAB_001547f3;" (if "if") (parenthesized_expression "(param_3[0xc] != 1)" (( "(") (binary_expression "param_3[0xc] != 1" (subscript_expression "param_3[0xc]" (identifier "param_3") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_001547f3;" (goto "goto") (statement_identifier "LAB_001547f3") (; ";"))) (expression_statement "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2)" (identifier "pdVar12") (= "=") (cast_expression "(double *)GetCacheViewAuthenticPixelQueue(param_2)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" (identifier "GetCacheViewAuthenticPixelQueue") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))))) (; ";")) (labeled_statement "LAB_001548e3:\n    dVar3 = _DAT_0029f148;" (statement_identifier "LAB_001548e3") (: ":") (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";"))) (expression_statement "iVar13 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar13 < 1) goto LAB_001547f3;" (if "if") (parenthesized_expression "(iVar13 < 1)" (( "(") (binary_expression "iVar13 < 1" (identifier "iVar13") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_001547f3;" (goto "goto") (statement_identifier "LAB_001547f3") (; ";"))) (expression_statement "piVar7 = *(int **)(param_1 + 0x2a8);" (assignment_expression "piVar7 = *(int **)(param_1 + 0x2a8)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(param_1 + 0x2a8)" (* "*") (cast_expression "(int **)(param_1 + 0x2a8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "iVar18 = piVar7[0xd];" (assignment_expression "iVar18 = piVar7[0xd]" (identifier "iVar18") (= "=") (subscript_expression "piVar7[0xd]" (identifier "piVar7") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "iVar27 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar27 = *(int *)(param_1 + 0x298)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    } while (iVar28 != iVar13);" (do "do") (compound_statement "{\n      if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }\n      pdVar20 = pdVar12;\n      piVar23 = piVar7;\n      if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }\n      pdVar12 = pdVar12 + iVar27;\n      iVar28 = iVar28 + 1;\n    }" ({ "{") (if_statement "if (iVar18 == 0) {\n        dVar5 = 1.0;\n      }\n      else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        dVar5 = 1.0;\n      }" ({ "{") (expression_statement "dVar5 = 1.0;" (assignment_expression "dVar5 = 1.0" (identifier "dVar5") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" (else "else") (compound_statement "{\n        dVar5 = pdVar12[piVar7[0xe]] * dVar3;\n      }" ({ "{") (expression_statement "dVar5 = pdVar12[piVar7[0xe]] * dVar3;" (assignment_expression "dVar5 = pdVar12[piVar7[0xe]] * dVar3" (identifier "dVar5") (= "=") (binary_expression "pdVar12[piVar7[0xe]] * dVar3" (subscript_expression "pdVar12[piVar7[0xe]]" (identifier "pdVar12") ([ "[") (subscript_expression "piVar7[0xe]" (identifier "piVar7") ([ "[") (number_literal "0xe") (] "]")) (] "]")) (* "*") (identifier "dVar3"))) (; ";")) (} "}")))) (expression_statement "pdVar20 = pdVar12;" (assignment_expression "pdVar20 = pdVar12" (identifier "pdVar20") (= "=") (identifier "pdVar12")) (; ";")) (expression_statement "piVar23 = piVar7;" (assignment_expression "piVar23 = piVar7" (identifier "piVar23") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (0 < iVar27) {\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" (if "if") (parenthesized_expression "(0 < iVar27)" (( "(") (binary_expression "0 < iVar27" (number_literal "0") (< "<") (identifier "iVar27")) () ")")) (compound_statement "{\n        do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);\n      }" ({ "{") (do_statement "do {\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        } while (piVar23 != piVar7 + iVar27 * 3);" (do "do") (compound_statement "{\n          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }\n          piVar23 = piVar23 + 3;\n          pdVar20 = pdVar20 + 1;\n        }" ({ "{") (if_statement "if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {\n            *pdVar20 = *pdVar20 * dVar5;\n          }" (if "if") (parenthesized_expression "((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2)" (( "(") (binary_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2" (pointer_expression "*(byte *)(piVar7 + *piVar23 * 3 + 1)" (* "*") (cast_expression "(byte *)(piVar7 + *piVar23 * 3 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar7 + *piVar23 * 3 + 1)" (( "(") (binary_expression "piVar7 + *piVar23 * 3 + 1" (binary_expression "piVar7 + *piVar23 * 3" (identifier "piVar7") (+ "+") (binary_expression "*piVar23 * 3" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (* "*") (number_literal "3"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *pdVar20 = *pdVar20 * dVar5;\n          }" ({ "{") (expression_statement "*pdVar20 = *pdVar20 * dVar5;" (assignment_expression "*pdVar20 = *pdVar20 * dVar5" (pointer_expression "*pdVar20" (* "*") (identifier "pdVar20")) (= "=") (binary_expression "*pdVar20 * dVar5" (pointer_expression "*pdVar20" (* "*") (identifier "pdVar20")) (* "*") (identifier "dVar5"))) (; ";")) (} "}"))) (expression_statement "piVar23 = piVar23 + 3;" (assignment_expression "piVar23 = piVar23 + 3" (identifier "piVar23") (= "=") (binary_expression "piVar23 + 3" (identifier "piVar23") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pdVar20 = pdVar20 + 1;" (assignment_expression "pdVar20 = pdVar20 + 1" (identifier "pdVar20") (= "=") (binary_expression "pdVar20 + 1" (identifier "pdVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar23 != piVar7 + iVar27 * 3)" (( "(") (binary_expression "piVar23 != piVar7 + iVar27 * 3" (identifier "piVar23") (!= "!=") (binary_expression "piVar7 + iVar27 * 3" (identifier "piVar7") (+ "+") (binary_expression "iVar27 * 3" (identifier "iVar27") (* "*") (number_literal "3")))) () ")")) (; ";")) (} "}"))) (expression_statement "pdVar12 = pdVar12 + iVar27;" (assignment_expression "pdVar12 = pdVar12 + iVar27" (identifier "pdVar12") (= "=") (binary_expression "pdVar12 + iVar27" (identifier "pdVar12") (+ "+") (identifier "iVar27"))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 != iVar13)" (( "(") (binary_expression "iVar28 != iVar13" (identifier "iVar28") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (if_statement "if (uVar11 < 2) goto LAB_00154999;" (if "if") (parenthesized_expression "(uVar11 < 2)" (( "(") (binary_expression "uVar11 < 2" (identifier "uVar11") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00154999;" (goto "goto") (statement_identifier "LAB_00154999") (; ";"))) (labeled_statement "LAB_001547fe:\n    local_fc._0_4_ = (uint)uVar30;" (statement_identifier "LAB_001547fe") (: ":") (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" (identifier "local_fc") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30"))) (; ";"))) (expression_statement "FUN_00135560(param_3);" (call_expression "FUN_00135560(param_3)" (identifier "FUN_00135560") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")"))) (; ";")) (expression_statement "local_c0 = GetQuantumExtent(param_1,param_3,param_4);" (assignment_expression "local_c0 = GetQuantumExtent(param_1,param_3,param_4)" (identifier "local_c0") (= "=") (call_expression "GetQuantumExtent(param_1,param_3,param_4)" (identifier "GetQuantumExtent") (argument_list "(param_1,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (switch_statement "switch(param_4) {\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" (switch "switch") (parenthesized_expression "(param_4)" (( "(") (identifier "param_4") () ")")) (compound_statement "{\n    default:\n      goto LAB_001548a8;\n    case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 6:\n    case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;\n    case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xd:\n    case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x10:\n    case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;\n    case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;\n    case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;\n    case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;\n    case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);\n    }" ({ "{") (case_statement "default:\n      goto LAB_001548a8;" (default "default") (: ":") (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 1:\ncode_r0x00154c08:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      fVar1 = DAT_0029f710;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" (case "case") (number_literal "1") (: ":") (labeled_statement "code_r0x00154c08:\n      iVar13 = (uint)local_fc;" (statement_identifier "code_r0x00154c08") (: ":") (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" (identifier "iVar13") (= "=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) (; ";"))) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";")) (expression_statement "fVar1 = DAT_0029f710;" (assignment_expression "fVar1 = DAT_0029f710" (identifier "fVar1") (= "=") (identifier "DAT_0029f710")) (; ";")) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfb;\ncode_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);\n      }" ({ "{") (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportAlphaQuantum"" (" """) (string_content "ExportAlphaQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xfb;" (assignment_expression "uVar11 = 0xfb" (identifier "uVar11") (= "=") (number_literal "0xfb")) (; ";")) (labeled_statement "code_r0x00159158:\n                    \n        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" (statement_identifier "code_r0x00159158") (: ":") (expression_statement "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31);" (call_expression "__assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" (identifier "__assert_fail") (argument_list "("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,\n                      pcVar31)" (( "(") (string_literal ""exception != (ExceptionInfo *) NULL"" (" """) (string_content "exception != (ExceptionInfo *) NULL") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "pcVar31") () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportAlphaQuantum";\n        uVar11 = 0xfc;\ncode_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);\n      }" ({ "{") (expression_statement "pcVar31 = "ExportAlphaQuantum";" (assignment_expression "pcVar31 = "ExportAlphaQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportAlphaQuantum"" (" """) (string_content "ExportAlphaQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xfc;" (assignment_expression "uVar11 = 0xfc" (identifier "uVar11") (= "=") (number_literal "0xfc")) (; ";")) (labeled_statement "code_r0x00159135:\n                    \n        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" (statement_identifier "code_r0x00159135") (: ":") (expression_statement "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31);" (call_expression "__assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" (identifier "__assert_fail") (argument_list "("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",\n                      uVar11,pcVar31)" (( "(") (string_literal ""exception->signature == MagickCoreSignature"" (" """) (string_content "exception->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "pcVar31") () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" (if "if") (parenthesized_expression "(uVar11 == 0x10)" (( "(") (binary_expression "uVar11 == 0x10" (identifier "uVar11") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n                fVar1 = 1.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                fVar1 = 1.0;\n              }" ({ "{") (expression_statement "fVar1 = 1.0;" (assignment_expression "fVar1 = 1.0" (identifier "fVar1") (= "=") (number_literal "1.0")) (; ";")) (} "}")) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" (else "else") (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));\n              }" ({ "{") (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" (identifier "fVar1") (= "=") (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" (( "(") (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar3")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" (identifier "uVar10") (= "=") (call_expression "FUN_00136290(fVar1)" (identifier "FUN_00136290") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00157b5e:\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" ({ "{") (labeled_statement "code_r0x00157b5e:\n                iVar18 = -1;" (statement_identifier "code_r0x00157b5e") (: ":") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" (else "else") (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }\n                else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                  iVar18 = 0;\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" (else "else") (compound_statement "{\n                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;\n                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" ({ "{") (if_statement "if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar3")) () ")")) (goto_statement "goto code_r0x00157b5e;" (goto "goto") (statement_identifier "code_r0x00157b5e") (; ";"))) (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (if "if") (parenthesized_expression "(uVar11 < 0x11)" (( "(") (binary_expression "uVar11 < 0x11" (identifier "uVar11") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00157d50:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154c68;\n      }" ({ "{") (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 8)" (( "(") (binary_expression "uVar11 == 8" (identifier "uVar11") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              bVar25 = 0xff;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                bVar25 = 0;\n                if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }\n              }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar3) {\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                  dVar3 = dVar3 / (double)DAT_002a7ff0;\n                  if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (= "=") (binary_expression "dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (if_statement "if ((double)DAT_002a7ff4 <= dVar3) {\n                    bVar25 = 0xff;\n                  }\n                  else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" (if "if") (parenthesized_expression "((double)DAT_002a7ff4 <= dVar3)" (( "(") (binary_expression "(double)DAT_002a7ff4 <= dVar3" (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    bVar25 = 0xff;\n                  }" ({ "{") (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" (else "else") (compound_statement "{\n                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                  }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x00157d50:\n        iStack_dc = 0;" (statement_identifier "code_r0x00157d50") (: ":") (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" (identifier "iStack_dc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" (identifier "iStack_d8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar11 != 0) goto code_r0x00154c68;" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00154c68;" (goto "goto") (statement_identifier "code_r0x00154c68") (; ";"))) (} "}")) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (else "else") (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00157d50;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154c68:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" ({ "{") (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0x20)" (( "(") (binary_expression "uVar11 == 0x20" (identifier "uVar11") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                fVar8 = fVar1;\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar8 >> 8);\n                bVar21 = (byte)((uint)fVar8 >> 0x18);\n                bVar19 = (byte)((uint)fVar8 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (expression_statement "fVar8 = fVar1;" (assignment_expression "fVar8 = fVar1" (identifier "fVar8") (= "=") (identifier "fVar1")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" ({ "{") (expression_statement "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar8 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar8") (= "=") (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar8 = fVar8 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar8 = fVar8 * (float)dVar3 + (float)dVar5" (identifier "fVar8") (= "=") (binary_expression "fVar8 * (float)dVar3 + (float)dVar5" (binary_expression "fVar8 * (float)dVar3" (identifier "fVar8") (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar8 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar8 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar8 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar8 >> 8)" (( "(") (binary_expression "(uint)fVar8 >> 8" (cast_expression "(uint)fVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar8")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar8 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar8 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar8 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar8 >> 0x18)" (( "(") (binary_expression "(uint)fVar8 >> 0x18" (cast_expression "(uint)fVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar8")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar8 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar8 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar8 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar8 >> 0x10)" (( "(") (binary_expression "(uint)fVar8 >> 0x10" (cast_expression "(uint)fVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar8")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = SUB41(fVar8,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = SUB41(fVar8,0);" (assignment_expression "*param_5 = SUB41(fVar8,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar8,0)" (identifier "SUB41") (argument_list "(fVar8,0)" (( "(") (identifier "fVar8") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar8,0);\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar8,0);" (assignment_expression "param_5[3] = SUB41(fVar8,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar8,0)" (identifier "SUB41") (argument_list "(fVar8,0)" (( "(") (identifier "fVar8") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (else "else") (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" ({ "{") (labeled_statement "code_r0x00157c2d:\n                  uStack_64._0_1_ = 0xff;" (statement_identifier "code_r0x00157c2d") (: ":") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";"))) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (else "else") (compound_statement "{\n                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                  if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }\n                  else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                    uStack_64._0_1_ = 0;\n                    bVar25 = 0;\n                    bVar19 = 0;\n                    bVar21 = 0;\n                  }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (else "else") (compound_statement "{\n                    dVar3 = dVar3 * (double)DAT_002a7fec;\n                    if (dVar5 <= dVar3) goto code_r0x00157c2d;\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) goto code_r0x00157c2d;" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (goto_statement "goto code_r0x00157c2d;" (goto "goto") (statement_identifier "code_r0x00157c2d") (; ";"))) (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 != 0x40) goto code_r0x00157d50;" (if "if") (parenthesized_expression "(uVar11 != 0x40)" (( "(") (binary_expression "uVar11 != 0x40" (identifier "uVar11") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x00157d50;" (goto "goto") (statement_identifier "code_r0x00157d50") (; ";"))) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            dVar6 = (double)DAT_0029f710;\n            do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "dVar6 = (double)DAT_0029f710;" (assignment_expression "dVar6 = (double)DAT_0029f710" (identifier "dVar6") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (do_statement "do {\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" (do "do") (compound_statement "{\n              dVar9 = dVar6;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              dVar9 = dVar9 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar9 >> 8);\n              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" ({ "{") (expression_statement "dVar9 = dVar6;" (assignment_expression "dVar9 = dVar6" (identifier "dVar9") (= "=") (identifier "dVar6")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" ({ "{") (expression_statement "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar9") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "dVar9 = dVar9 * dVar3 + dVar5;" (assignment_expression "dVar9 = dVar9 * dVar3 + dVar5" (identifier "dVar9") (= "=") (binary_expression "dVar9 * dVar3 + dVar5" (binary_expression "dVar9 * dVar3" (identifier "dVar9") (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar9 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar9 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x28" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar9 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar9 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 8)" (( "(") (binary_expression "(ulonglong)dVar9 >> 8" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar9 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar9 >> 0x38)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x38" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "bVar22 = (byte)((ulonglong)dVar9 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar9 >> 0x20)" (identifier "bVar22") (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x20" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18)" (field_expression "local_fc._0_1_" (identifier "local_fc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x18" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30)" (field_expression "local_104._0_1_" (identifier "local_104") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x30" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10)" (field_expression "uStack_f4._0_1_" (identifier "uStack_f4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar9 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar9 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar9 >> 0x10" (cast_expression "(ulonglong)dVar9" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar9")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB81(dVar9,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" ({ "{") (expression_statement "*param_5 = SUB81(dVar9,0);" (assignment_expression "*param_5 = SUB81(dVar9,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar9,0)" (identifier "SUB81") (argument_list "(dVar9,0)" (( "(") (identifier "dVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (} "}")) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" (else "else") (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar9,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar9,0);" (assignment_expression "param_5[7] = SUB81(dVar9,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar9,0)" (identifier "SUB81") (argument_list "(dVar9,0)" (( "(") (identifier "dVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != iVar13)" (( "(") (binary_expression "iVar18 != iVar13" (identifier "iVar18") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x00154c68:\n        uVar29 = 0;" (statement_identifier "code_r0x00154c68") (: ":") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" (if "if") (parenthesized_expression "(uVar11 < 0x41)" (( "(") (binary_expression "uVar11 < 0x41" (identifier "uVar11") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n          uVar29 = uVar11;\n        }" ({ "{") (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar29 - 1)" (( "(") (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar26") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" (if "if") (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" (( "(") (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" (identifier "uVar26") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" (identifier "iStack_dc") (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" (identifier "iStack_d8") (= "=") (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" ({ "{") (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" (identifier "uStack_e4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        } while( true );" (do "do") (compound_statement "{\n          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            dVar3 = (double)DAT_0029f710;\ncode_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" ({ "{") (expression_statement "dVar3 = (double)DAT_0029f710;" (assignment_expression "dVar3 = (double)DAT_0029f710" (identifier "dVar3") (= "=") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710"))) (; ";")) (labeled_statement "code_r0x001566ad:\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (statement_identifier "code_r0x001566ad") (: ":") (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_d8,iStack_dc)" (identifier "CONCAT44") (argument_list "(iStack_d8,iStack_dc)" (( "(") (identifier "iStack_d8") (, ",") (identifier "iStack_dc") () ")"))))) (; ";"))) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" (if "if") (parenthesized_expression "(iStack_d8 < 0)" (( "(") (binary_expression "iStack_d8 < 0" (identifier "iStack_d8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" (identifier "uStack_f4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" (( "(") (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar3")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "uStack_f4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" (else "else") (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" ({ "{") (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" (identifier "uStack_f4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" (else "else") (compound_statement "{\n            uStack_f4 = 0;\n            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n            if (0.0 < dVar3) goto code_r0x001566ad;\n          }" ({ "{") (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (0.0 < dVar3) goto code_r0x001566ad;" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (goto_statement "goto code_r0x001566ad;" (goto "goto") (statement_identifier "code_r0x001566ad") (; ";"))) (} "}")))) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_3[0x14] = 8;\n          }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" (while "while") (parenthesized_expression "(0 < (int)uVar29)" (( "(") (binary_expression "0 < (int)uVar29" (number_literal "0") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" ({ "{") (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n              uVar17 = uVar11;\n            }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" (identifier "uVar29") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" (if "if") (parenthesized_expression "(-1 < (int)uVar29)" (( "(") (binary_expression "-1 < (int)uVar29" (number_literal "-1") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n              uVar11 = uVar29;\n            }" ({ "{") (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" (identifier "uVar11") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              *param_5 = 0;\n            }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (identifier "uVar16") (= "=") (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_f4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" ({ "{") (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar16")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar25 = 0;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" (identifier "uStack_e4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" (if "if") (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" (( "(") (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 2:\ncode_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "2") (: ":") (labeled_statement "code_r0x00156619:\n      FUN_00146770(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00156619") (: ":") (expression_statement "FUN_00146770(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00146770(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00146770") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 3:\ncode_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "3") (: ":") (labeled_statement "code_r0x001565ed:\n      FUN_0014fd90(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x001565ed") (: ":") (expression_statement "FUN_0014fd90(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014fd90(uVar30,local_c4,param_5,param_6)" (identifier "FUN_0014fd90") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 4:\ncode_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "4") (: ":") (labeled_statement "code_r0x00154848:\n      FUN_0013fa50(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00154848") (: ":") (expression_statement "FUN_0013fa50(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013fa50(uVar30,local_c4,param_5,param_6)" (identifier "FUN_0013fa50") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 5:\ncode_r0x00156375:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" (case "case") (number_literal "5") (: ":") (labeled_statement "code_r0x00156375:\n      iVar13 = (uint)local_fc;" (statement_identifier "code_r0x00156375") (: ":") (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" (identifier "iVar13") (= "=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) (; ";"))) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";")) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (*(int *)(param_1 + 4) != 2) {\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) != 2)" (( "(") (binary_expression "*(int *)(param_1 + 4) != 2" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);\n        goto LAB_001548a8;\n      }" ({ "{") (expression_statement "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);" (call_expression "ThrowMagickException\n                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" (identifier "ThrowMagickException") (argument_list "(param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,\n                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318)" (( "(") (identifier "param_6") (, ",") (string_literal ""MagickCore/quantum-export.c"" (" """) (string_content "MagickCore/quantum-export.c") (" """)) (, ",") (string_literal ""ExportBlackQuantum"" (" """) (string_content "ExportBlackQuantum") (" """)) (, ",") (number_literal "0x47b") (, ",") (number_literal "0x1d1") (, ",") (string_literal ""ColorSeparatedImageRequired"" (" """) (string_content "ColorSeparatedImageRequired") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" (if "if") (parenthesized_expression "(uVar11 == 0x10)" (( "(") (binary_expression "uVar11 == 0x10" (identifier "uVar11") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                fVar1 = 0.0;\n              }\n              else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                fVar1 = 0.0;\n              }" ({ "{") (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" (identifier "fVar1") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" (else "else") (compound_statement "{\n                fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));\n              }" ({ "{") (expression_statement "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));" (assignment_expression "fVar1 = (float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (identifier "fVar1") (= "=") (cast_expression "(float)((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8))" (( "(") (binary_expression "(longdouble)dVar3 *\n                               (longdouble)\n                               *(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (binary_expression "(longdouble)dVar3 *\n                               (longdouble)" (cast_expression "(longdouble)dVar3" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar3")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" (identifier "uVar10") (= "=") (call_expression "FUN_00136290(fVar1)" (identifier "FUN_00136290") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0)" (( "(") (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (, ",") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" ({ "{") (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (if "if") (parenthesized_expression "(uVar11 < 0x11)" (( "(") (binary_expression "uVar11 < 0x11" (identifier "uVar11") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00158120:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x001563c0;\n      }" ({ "{") (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 8)" (( "(") (binary_expression "uVar11 == 8" (identifier "uVar11") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3)" (( "(") (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                 0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (, ",") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3"))) () ")"))) () ")")) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (= "=") (binary_expression "dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar3 < (double)DAT_002a7ff4" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x00158120:\n        iStack_dc = 0;" (statement_identifier "code_r0x00158120") (: ":") (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" (identifier "iStack_dc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" (identifier "iStack_d8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar11 != 0) goto code_r0x001563c0;" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x001563c0;" (goto "goto") (statement_identifier "code_r0x001563c0") (; ";"))) (} "}")) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (else "else") (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x00158120;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x001563c0:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" ({ "{") (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0x20)" (( "(") (binary_expression "uVar11 == 0x20" (identifier "uVar11") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                  fVar1 = 0.0;\n                }\n                else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = 0.0;\n                }" ({ "{") (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" (identifier "fVar1") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" (else "else") (compound_statement "{\n                  fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n                }" ({ "{") (expression_statement "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "fVar1 = (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "fVar1") (= "=") (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (} "}")))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" (identifier "fVar1") (= "=") (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" (identifier "fVar1") (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (else "else") (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||\n                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0)" (( "(") (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (, ",") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (else "else") (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" ({ "{") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (else "else") (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 != 0x40) goto code_r0x00158120;" (if "if") (parenthesized_expression "(uVar11 != 0x40)" (( "(") (binary_expression "uVar11 != 0x40" (identifier "uVar11") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x00158120;" (goto "goto") (statement_identifier "code_r0x00158120") (; ";"))) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" (do "do") (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {\n                dVar6 = 0.0;\n              }\n              else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                dVar6 = 0.0;\n              }" ({ "{") (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" (identifier "dVar6") (= "=") (number_literal "0.0")) (; ";")) (} "}")) (else_clause "else {\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" (else "else") (compound_statement "{\n                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);\n              }" ({ "{") (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar6") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" (identifier "dVar6") (= "=") (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" (identifier "dVar6") (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 8)" (( "(") (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" (identifier "bVar22") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "local_fc._0_1_" (identifier "local_fc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_104._0_1_" (identifier "local_104") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_f4._0_1_" (identifier "uStack_f4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_f4;\n                param_5[3] = (byte)local_fc;\n                param_5[6] = (byte)local_104;\n              }" ({ "{") (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)uStack_f4;" (assignment_expression "param_5[2] = (byte)uStack_f4" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[3] = (byte)local_fc;" (assignment_expression "param_5[3] = (byte)local_fc" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (expression_statement "param_5[6] = (byte)local_104;" (assignment_expression "param_5[6] = (byte)local_104" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (} "}")) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" (else "else") (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)local_fc;\n                param_5[1] = (byte)local_104;\n                param_5[5] = (byte)uStack_f4;\n                param_5[6] = bVar19;\n              }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)local_fc;" (assignment_expression "param_5[4] = (byte)local_fc" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (expression_statement "param_5[5] = (byte)uStack_f4;" (assignment_expression "param_5[5] = (byte)uStack_f4" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != iVar13)" (( "(") (binary_expression "iVar18 != iVar13" (identifier "iVar18") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x001563c0:\n        uVar29 = 0;" (statement_identifier "code_r0x001563c0") (: ":") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" (if "if") (parenthesized_expression "(uVar11 < 0x41)" (( "(") (binary_expression "uVar11 < 0x41" (identifier "uVar11") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n          uVar29 = uVar11;\n        }" ({ "{") (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar29 - 1)" (( "(") (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar26") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" (if "if") (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" (( "(") (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" (identifier "uVar26") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" (identifier "iStack_dc") (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" (identifier "iStack_d8") (= "=") (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (0 < (int)(uint)local_fc) {\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n        uStack_e4._0_4_ = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" ({ "{") (expression_statement "uStack_e4._0_4_ = 0;" (assignment_expression "uStack_e4._0_4_ = 0" (field_expression "uStack_e4._0_4_" (identifier "uStack_e4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          uStack_e4._0_4_ = (uint)uStack_e4 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if ((uint)uStack_e4 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" ({ "{") (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)) {\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&\n             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x28" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3)" (( "(") (comma_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),\n             0.0 < dVar3" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (, ",") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3"))) () ")"))) () ")")) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_d8,iStack_dc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_d8,iStack_dc)" (identifier "CONCAT44") (argument_list "(iStack_d8,iStack_dc)" (( "(") (identifier "iStack_d8") (, ",") (identifier "iStack_dc") () ")"))))) (; ";")) (if_statement "if (iStack_d8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" (if "if") (parenthesized_expression "(iStack_d8 < 0)" (( "(") (binary_expression "iStack_d8 < 0" (identifier "iStack_d8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" (identifier "uStack_f4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" (( "(") (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar3")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }\n            }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "uStack_f4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" (else "else") (compound_statement "{\n                uStack_f4 = (longlong)ROUND(dVar3);\n              }" ({ "{") (expression_statement "uStack_f4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_f4 = (longlong)ROUND(dVar3)" (identifier "uStack_f4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_3[0x14] = 8;\n          }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" (while "while") (parenthesized_expression "(0 < (int)uVar29)" (( "(") (binary_expression "0 < (int)uVar29" (number_literal "0") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" ({ "{") (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n              uVar17 = uVar11;\n            }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" (identifier "uVar29") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" (if "if") (parenthesized_expression "(-1 < (int)uVar29)" (( "(") (binary_expression "-1 < (int)uVar29" (number_literal "-1") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n              uVar11 = uVar29;\n            }" ({ "{") (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" (identifier "uVar11") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              *param_5 = 0;\n            }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (identifier "uVar16") (= "=") (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_f4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" ({ "{") (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar16")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar25 = 0;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "uStack_e4._0_4_ = (uint)uStack_e4 + 1;" (assignment_expression "uStack_e4._0_4_ = (uint)uStack_e4 + 1" (field_expression "uStack_e4._0_4_" (identifier "uStack_e4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(uint)uStack_e4 + 1" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if ((uint)uStack_e4 == (uint)local_fc) break;" (if "if") (parenthesized_expression "((uint)uStack_e4 == (uint)local_fc)" (( "(") (binary_expression "(uint)uStack_e4 == (uint)local_fc" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 6:" (case "case") (number_literal "6") (: ":")) (case_statement "case 0x1a:\ncode_r0x001560f3:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" (case "case") (number_literal "0x1a") (: ":") (labeled_statement "code_r0x001560f3:\n      dVar5 = DAT_002a8000;" (statement_identifier "code_r0x001560f3") (: ":") (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";"))) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e6;\n        goto code_r0x00159158;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportBlueQuantum"" (" """) (string_content "ExportBlueQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x4e6;" (assignment_expression "uVar11 = 0x4e6" (identifier "uVar11") (= "=") (number_literal "0x4e6")) (; ";")) (goto_statement "goto code_r0x00159158;" (goto "goto") (statement_identifier "code_r0x00159158") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportBlueQuantum";\n        uVar11 = 0x4e7;\n        goto code_r0x00159135;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportBlueQuantum";" (assignment_expression "pcVar31 = "ExportBlueQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportBlueQuantum"" (" """) (string_content "ExportBlueQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x4e7;" (assignment_expression "uVar11 = 0x4e7" (identifier "uVar11") (= "=") (number_literal "0x4e7")) (; ";")) (goto_statement "goto code_r0x00159135;" (goto "goto") (statement_identifier "code_r0x00159135") (; ";")) (} "}"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x10)" (( "(") (binary_expression "uVar29 == 0x10" (identifier "uVar29") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (identifier "uVar10") (= "=") (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)))" (( "(") (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8))" (( "(") (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar3")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")"))) () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" ({ "{") (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 < 0x11)" (( "(") (binary_expression "uVar29 < 0x11" (identifier "uVar29") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar29 == 8)" (( "(") (binary_expression "uVar29 == 8" (identifier "uVar29") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (= "=") (binary_expression "dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar3 < (double)DAT_002a7ff4" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (else "else") (compound_statement "{\ncode_r0x00157c43:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" ({ "{") (labeled_statement "code_r0x00157c43:\n          iStack_cc = 0;" (statement_identifier "code_r0x00157c43") (: ":") (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" (identifier "iStack_cc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" (identifier "iStack_c8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar29 != 0) {\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00156153:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" ({ "{") (labeled_statement "code_r0x00156153:\n            uVar26 = 0;" (statement_identifier "code_r0x00156153") (: ":") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" (if "if") (parenthesized_expression "(uVar29 < 0x41)" (( "(") (binary_expression "uVar29 < 0x41" (identifier "uVar29") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n              uVar26 = uVar29;\n            }" ({ "{") (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" (identifier "uVar16") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar17") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" (if "if") (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" (( "(") (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" (identifier "iStack_cc") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" (identifier "iStack_c8") (= "=") (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" (( "(") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" ({ "{") (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" (identifier "iStack_d4") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" ({ "{") (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" (identifier "uStack_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_c8,iStack_cc)" (identifier "CONCAT44") (argument_list "(iStack_c8,iStack_cc)" (( "(") (identifier "iStack_c8") (, ",") (identifier "iStack_cc") () ")"))))) (; ";")) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_c8 < 0)" (( "(") (binary_expression "iStack_c8 < 0" (identifier "iStack_c8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" (identifier "uStack_e4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" (( "(") (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar3")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "uStack_e4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" (identifier "uStack_e4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_3[0x14] = 8;\n              }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" (while "while") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" ({ "{") (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" (identifier "uVar17") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" (if "if") (parenthesized_expression "(uVar29 <= uVar17)" (( "(") (binary_expression "uVar29 <= uVar17" (identifier "uVar29") (<= "<=") (identifier "uVar17")) () ")")) (compound_statement "{\n                  uVar16 = uVar29;\n                }" ({ "{") (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" (identifier "uVar16") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" (identifier "uVar26") (= "=") (binary_expression "uVar29 - uVar16" (identifier "uVar29") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar26)" (( "(") (binary_expression "-1 < (int)uVar26" (number_literal "-1") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar29 = uVar26;\n                }" ({ "{") (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" (identifier "uVar29") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar17 == 8)" (( "(") (binary_expression "uVar17 == 8" (identifier "uVar17") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" (identifier "uVar17") (= "=") (binary_expression "uVar17 - uVar16" (identifier "uVar17") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar29 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" (( "(") (binary_expression "uVar29 & 0x20" (identifier "uVar29") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar29 & 0x1f)" (( "(") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar16 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar16 & 0x1f)" (( "(") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar17 & 0x20) != 0)" (( "(") (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" (( "(") (binary_expression "uVar17 & 0x20" (identifier "uVar17") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" (identifier "iStack_d4") (= "=") (binary_expression "iStack_d4 + 1" (identifier "iStack_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iStack_d4 == (uint)local_fc) break;" (if "if") (parenthesized_expression "(iStack_d4 == (uint)local_fc)" (( "(") (binary_expression "iStack_d4 == (uint)local_fc" (identifier "iStack_d4") (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x20)" (( "(") (binary_expression "uVar29 == 0x20" (identifier "uVar29") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (else "else") (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" ({ "{") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (else "else") (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x00157c43;\n        if (param_3[2] != 1) goto code_r0x00156153;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" ({ "{") (if_statement "if (uVar29 != 0x40) goto code_r0x00157c43;" (if "if") (parenthesized_expression "(uVar29 != 0x40)" (( "(") (binary_expression "uVar29 != 0x40" (identifier "uVar29") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x00157c43;" (goto "goto") (statement_identifier "code_r0x00157c43") (; ";"))) (if_statement "if (param_3[2] != 1) goto code_r0x00156153;" (if "if") (parenthesized_expression "(param_3[2] != 1)" (( "(") (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00156153;" (goto "goto") (statement_identifier "code_r0x00156153") (; ";"))) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" ({ "{") (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" (identifier "dVar6") (= "=") (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x20" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 8)" (( "(") (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" (identifier "iStack_d4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" (identifier "bStack_ec") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" (identifier "iStack_cc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" (identifier "uStack_e4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" ({ "{") (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bStack_ec")) (; ";")) (} "}")) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (else "else") (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bStack_ec")) (; ";")) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\ncode_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }\n      goto LAB_001548a8;" (case "case") (number_literal "9") (: ":") (labeled_statement "code_r0x00155641:\n      if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" (statement_identifier "code_r0x00155641") (: ":") (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x559;\n        goto code_r0x00159158;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportCbYCrYQuantum"" (" """) (string_content "ExportCbYCrYQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x559;" (assignment_expression "uVar11 = 0x559" (identifier "uVar11") (= "=") (number_literal "0x559")) (; ";")) (goto_statement "goto code_r0x00159158;" (goto "goto") (statement_identifier "code_r0x00159158") (; ";")) (} "}")))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportCbYCrYQuantum";\n        uVar11 = 0x55a;\n        goto code_r0x00159135;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportCbYCrYQuantum";" (assignment_expression "pcVar31 = "ExportCbYCrYQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportCbYCrYQuantum"" (" """) (string_content "ExportCbYCrYQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x55a;" (assignment_expression "uVar11 = 0x55a" (identifier "uVar11") (= "=") (number_literal "0x55a")) (; ";")) (goto_statement "goto code_r0x00159135;" (goto "goto") (statement_identifier "code_r0x00159135") (; ";")) (} "}"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar11 == 10) {\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }\n      else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(uVar11 == 10)" (( "(") (binary_expression "uVar11 == 10" (identifier "uVar11") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }\n      }" ({ "{") (if_statement "if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" (if "if") (parenthesized_expression "((param_3[0xb] == 0) && (0 < (int)(uint)local_fc))" (( "(") (binary_expression "(param_3[0xb] == 0) && (0 < (int)(uint)local_fc)" (parenthesized_expression "(param_3[0xb] == 0)" (( "(") (binary_expression "param_3[0xb] == 0" (subscript_expression "param_3[0xb]" (identifier "param_3") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")"))) () ")")) (compound_statement "{\n          iVar13 = 0;\n          do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);" (do "do") (compound_statement "{\n            iVar27 = 0;\n            iVar18 = *(int *)(param_1 + 0x2a8);\n            do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);\n            iVar13 = iVar13 + 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);\n            uVar29 = uStack_64 << 0xc;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);\n            uVar11 = uStack_64 * 4;\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);\n            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;\n            bVar19 = (byte)(uVar26 >> 0x10);\n            bVar25 = (byte)uVar11;\n            local_10c._0_1_ = (byte)(uVar26 >> 0x18);\n            local_104._0_1_ = (byte)(uVar26 >> 8);\n            if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }\n            uVar29 = uVar29 | uVar11;\n            iVar18 = *(int *)(param_1 + 0x298);\n            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);\n            uVar11 = uStack_64 << 0x16 | uVar29;\n            bVar19 = (byte)(uVar11 >> 0x18);\n            bVar21 = (byte)(uVar11 >> 0x10);\n            local_10c._0_1_ = (byte)(uVar29 >> 8);\n            if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }\n            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" ({ "{") (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" (identifier "iVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x2a8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (do_statement "do {\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            } while (iVar27 != 4);" (do "do") (compound_statement "{\n              uVar11 = (uint)(iVar13 + iVar27) % 3;\n              if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }\n              local_10c = (ulonglong)uStack_64;\n              adStack_44[iVar27] = (double)local_10c;\n              iVar27 = iVar27 + 1;\n            }" ({ "{") (expression_statement "uVar11 = (uint)(iVar13 + iVar27) % 3;" (assignment_expression "uVar11 = (uint)(iVar13 + iVar27) % 3" (identifier "uVar11") (= "=") (binary_expression "(uint)(iVar13 + iVar27) % 3" (call_expression "(uint)(iVar13 + iVar27)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar13 + iVar27)" (( "(") (binary_expression "iVar13 + iVar27" (identifier "iVar13") (+ "+") (identifier "iVar27")) () ")"))) (% "%") (number_literal "3"))) (; ";")) (if_statement "if (uVar11 == 1) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }\n              else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));\n              }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar18 + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(iVar18 + 0x14) * 8" (pointer_expression "*(int *)(iVar18 + 0x14)" (* "*") (cast_expression "(int *)(iVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))))) (; ";")) (} "}")) (else_clause "else if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" (else "else") (if_statement "if (uVar11 == 2) {\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }\n              else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" (if "if") (parenthesized_expression "(uVar11 == 2)" (( "(") (binary_expression "uVar11 == 2" (identifier "uVar11") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));\n              }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)\n                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar18 + 0x20) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(iVar18 + 0x20) * 8" (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" (else "else") (compound_statement "{\n                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));\n              }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar18 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar18 + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar18 + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(iVar18 + 8) * 8" (pointer_expression "*(int *)(iVar18 + 8)" (* "*") (cast_expression "(int *)(iVar18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")")))))) (; ";")) (} "}")))))) (expression_statement "local_10c = (ulonglong)uStack_64;" (assignment_expression "local_10c = (ulonglong)uStack_64" (identifier "local_10c") (= "=") (cast_expression "(ulonglong)uStack_64" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "adStack_44[iVar27] = (double)local_10c;" (assignment_expression "adStack_44[iVar27] = (double)local_10c" (subscript_expression "adStack_44[iVar27]" (identifier "adStack_44") ([ "[") (identifier "iVar27") (] "]")) (= "=") (cast_expression "(double)local_10c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" (identifier "iVar27") (= "=") (binary_expression "iVar27 + 1" (identifier "iVar27") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar27 != 4)" (( "(") (binary_expression "iVar27 != 4" (identifier "iVar27") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "iVar13 = iVar13 + 4;" (assignment_expression "iVar13 = iVar13 + 4" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[0])" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(adStack_44[0])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(adStack_44[0])" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(adStack_44[0])" (identifier "ROUND") (argument_list "(adStack_44[0])" (( "(") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]")) () ")")))))) (; ";")) (expression_statement "uVar29 = uStack_64 << 0xc;" (assignment_expression "uVar29 = uStack_64 << 0xc" (identifier "uVar29") (= "=") (binary_expression "uStack_64 << 0xc" (identifier "uStack_64") (<< "<<") (number_literal "0xc"))) (; ";")) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[2])" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(adStack_44[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(adStack_44[2])" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(adStack_44[2])" (identifier "ROUND") (argument_list "(adStack_44[2])" (( "(") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]")) () ")")))))) (; ";")) (expression_statement "uVar11 = uStack_64 * 4;" (assignment_expression "uVar11 = uStack_64 * 4" (identifier "uVar11") (= "=") (binary_expression "uStack_64 * 4" (identifier "uStack_64") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[1])" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(adStack_44[1])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(adStack_44[1])" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(adStack_44[1])" (identifier "ROUND") (argument_list "(adStack_44[1])" (( "(") (subscript_expression "adStack_44[1]" (identifier "adStack_44") ([ "[") (number_literal "1") (] "]")) () ")")))))) (; ";")) (expression_statement "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;" (assignment_expression "uVar26 = uStack_64 << 0x16 | uVar29 | uVar11" (identifier "uVar26") (= "=") (binary_expression "uStack_64 << 0x16 | uVar29 | uVar11" (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" (identifier "uStack_64") (<< "<<") (number_literal "0x16")) (| "|") (identifier "uVar29")) (| "|") (identifier "uVar11"))) (; ";")) (expression_statement "bVar19 = (byte)(uVar26 >> 0x10);" (assignment_expression "bVar19 = (byte)(uVar26 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar26 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 >> 0x10)" (( "(") (binary_expression "uVar26 >> 0x10" (identifier "uVar26") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "bVar25 = (byte)uVar11;" (assignment_expression "bVar25 = (byte)uVar11" (identifier "bVar25") (= "=") (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "local_10c._0_1_ = (byte)(uVar26 >> 0x18);" (assignment_expression "local_10c._0_1_ = (byte)(uVar26 >> 0x18)" (field_expression "local_10c._0_1_" (identifier "local_10c") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)(uVar26 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 >> 0x18)" (( "(") (binary_expression "uVar26 >> 0x18" (identifier "uVar26") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_104._0_1_ = (byte)(uVar26 >> 8);" (assignment_expression "local_104._0_1_ = (byte)(uVar26 >> 8)" (field_expression "local_104._0_1_" (identifier "local_104") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)(uVar26 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 >> 8)" (( "(") (binary_expression "uVar26 >> 8" (identifier "uVar26") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }\n            else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *param_5 = bVar25;\n              param_5[2] = bVar19;\n              param_5[1] = (byte)local_104;\n              param_5[3] = (byte)local_10c;\n            }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[1] = (byte)local_104;" (assignment_expression "param_5[1] = (byte)local_104" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (expression_statement "param_5[3] = (byte)local_10c;" (assignment_expression "param_5[3] = (byte)local_10c" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)local_10c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_10c"))) (; ";")) (} "}")) (else_clause "else {\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" (else "else") (compound_statement "{\n              param_5[1] = bVar19;\n              *param_5 = (byte)local_10c;\n              param_5[3] = bVar25;\n              param_5[2] = (byte)local_104;\n            }" ({ "{") (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "*param_5 = (byte)local_10c;" (assignment_expression "*param_5 = (byte)local_10c" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)local_10c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "param_5[3] = bVar25;" (assignment_expression "param_5[3] = bVar25" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = (byte)local_104;" (assignment_expression "param_5[2] = (byte)local_104" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)local_104" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_104"))) (; ";")) (} "}")))) (expression_statement "uVar29 = uVar29 | uVar11;" (assignment_expression "uVar29 = uVar29 | uVar11" (identifier "uVar29") (= "=") (binary_expression "uVar29 | uVar11" (identifier "uVar29") (| "|") (identifier "uVar11"))) (; ";")) (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(adStack_44[3])" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(adStack_44[3])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(adStack_44[3])" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(adStack_44[3])" (identifier "ROUND") (argument_list "(adStack_44[3])" (( "(") (subscript_expression "adStack_44[3]" (identifier "adStack_44") ([ "[") (number_literal "3") (] "]")) () ")")))))) (; ";")) (expression_statement "uVar11 = uStack_64 << 0x16 | uVar29;" (assignment_expression "uVar11 = uStack_64 << 0x16 | uVar29" (identifier "uVar11") (= "=") (binary_expression "uStack_64 << 0x16 | uVar29" (binary_expression "uStack_64 << 0x16" (identifier "uStack_64") (<< "<<") (number_literal "0x16")) (| "|") (identifier "uVar29"))) (; ";")) (expression_statement "bVar19 = (byte)(uVar11 >> 0x18);" (assignment_expression "bVar19 = (byte)(uVar11 >> 0x18)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar11 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar11 >> 0x18)" (( "(") (binary_expression "uVar11 >> 0x18" (identifier "uVar11") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)(uVar11 >> 0x10);" (assignment_expression "bVar21 = (byte)(uVar11 >> 0x10)" (identifier "bVar21") (= "=") (call_expression "(byte)(uVar11 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar11 >> 0x10)" (( "(") (binary_expression "uVar11 >> 0x10" (identifier "uVar11") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_10c._0_1_ = (byte)(uVar29 >> 8);" (assignment_expression "local_10c._0_1_ = (byte)(uVar29 >> 8)" (field_expression "local_10c._0_1_" (identifier "local_10c") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)(uVar29 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar29 >> 8)" (( "(") (binary_expression "uVar29 >> 8" (identifier "uVar29") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }\n            else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              param_5[4] = bVar25;\n              param_5[7] = bVar19;\n              param_5[5] = (byte)local_10c;\n              param_5[6] = bVar21;\n            }" ({ "{") (expression_statement "param_5[4] = bVar25;" (assignment_expression "param_5[4] = bVar25" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[7] = bVar19;" (assignment_expression "param_5[7] = bVar19" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[5] = (byte)local_10c;" (assignment_expression "param_5[5] = (byte)local_10c" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)local_10c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_10c"))) (; ";")) (expression_statement "param_5[6] = bVar21;" (assignment_expression "param_5[6] = bVar21" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" (else "else") (compound_statement "{\n              param_5[4] = bVar19;\n              param_5[5] = bVar21;\n              param_5[7] = bVar25;\n              param_5[6] = (byte)local_10c;\n            }" ({ "{") (expression_statement "param_5[4] = bVar19;" (assignment_expression "param_5[4] = bVar19" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[5] = bVar21;" (assignment_expression "param_5[5] = bVar21" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[7] = bVar25;" (assignment_expression "param_5[7] = bVar25" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[6] = (byte)local_10c;" (assignment_expression "param_5[6] = (byte)local_10c" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)local_10c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_10c"))) (; ";")) (} "}")))) (expression_statement "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;" (assignment_expression "local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8" (identifier "local_c4") (+ "+") (binary_expression "(*(int *)(param_1 + 0x298) + iVar18) * 8" (parenthesized_expression "(*(int *)(param_1 + 0x298) + iVar18)" (( "(") (binary_expression "*(int *)(param_1 + 0x298) + iVar18" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (+ "+") (identifier "iVar18")) () ")")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4)" (( "(") (binary_expression "iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4" (identifier "iVar13") (!= "!=") (binary_expression "((uint)local_fc - 1 >> 1) * 4 + 4" (binary_expression "((uint)local_fc - 1 >> 1) * 4" (parenthesized_expression "((uint)local_fc - 1 >> 1)" (( "(") (binary_expression "(uint)local_fc - 1 >> 1" (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")) (- "-") (number_literal "1")) (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" (else "else") (if_statement "if (0 < (int)(uint)local_fc) {\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n        uVar29 = (uint)local_fc - 1;\n        local_a8 = 0;\n        do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );\n      }" ({ "{") (expression_statement "uVar29 = (uint)local_fc - 1;" (assignment_expression "uVar29 = (uint)local_fc - 1" (identifier "uVar29") (= "=") (binary_expression "(uint)local_fc - 1" (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        } while( true );" (do "do") (compound_statement "{\n          iVar18 = 0;\n          iVar13 = *(int *)(param_1 + 0x2a8);\n          do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);\n          local_a8 = local_a8 + 4;\n          local_bc = 0;\n          iStack_b8 = 0;\n          if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          local_b4 = 0;\n          if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }\n          uVar26 = param_3[0x14];\n          if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }\n          if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }\n          while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;\n          param_5 = param_5 + param_3[9];\n          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;\n          uVar11 = *param_3;\n        }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = *(int *)(param_1 + 0x2a8);" (assignment_expression "iVar13 = *(int *)(param_1 + 0x2a8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (do_statement "do {\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          } while (iVar18 != 4);" (do "do") (compound_statement "{\n            uVar26 = (uint)(local_a8 + iVar18) % 3;\n            if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }\n            local_104 = (ulonglong)uStack_64;\n            adStack_44[iVar18] = (double)local_104;\n            iVar18 = iVar18 + 1;\n          }" ({ "{") (expression_statement "uVar26 = (uint)(local_a8 + iVar18) % 3;" (assignment_expression "uVar26 = (uint)(local_a8 + iVar18) % 3" (identifier "uVar26") (= "=") (binary_expression "(uint)(local_a8 + iVar18) % 3" (call_expression "(uint)(local_a8 + iVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_a8 + iVar18)" (( "(") (binary_expression "local_a8 + iVar18" (identifier "local_a8") (+ "+") (identifier "iVar18")) () ")"))) (% "%") (number_literal "3"))) (; ";")) (if_statement "if (uVar26 == 1) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }\n            else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" (if "if") (parenthesized_expression "(uVar26 == 1)" (( "(") (binary_expression "uVar26 == 1" (identifier "uVar26") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;\n            }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar13 + 0x14) * 8" (identifier "local_c4") (+ "+") (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"))) () ")")))) () ")")))))) (; ";")) (} "}")) (else_clause "else if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" (else "else") (if_statement "if (uVar26 == 2) {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }\n            else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" (if "if") (parenthesized_expression "(uVar26 == 2)" (( "(") (binary_expression "uVar26 == 2" (identifier "uVar26") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;\n            }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))\n              ;" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 0x20) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar13 + 0x20) * 8" (identifier "local_c4") (+ "+") (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"))) () ")")))) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" (else "else") (compound_statement "{\n              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));\n            }" ({ "{") (expression_statement "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));" (assignment_expression "uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" (identifier "uStack_64") (= "=") (cast_expression "(uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" (identifier "ROUND") (argument_list "(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8))" (( "(") (pointer_expression "*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(iVar13 + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(iVar13 + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(iVar13 + 8) * 8" (identifier "local_c4") (+ "+") (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"))) () ")")))) () ")")))))) (; ";")) (} "}")))))) (expression_statement "local_104 = (ulonglong)uStack_64;" (assignment_expression "local_104 = (ulonglong)uStack_64" (identifier "local_104") (= "=") (cast_expression "(ulonglong)uStack_64" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "adStack_44[iVar18] = (double)local_104;" (assignment_expression "adStack_44[iVar18] = (double)local_104" (subscript_expression "adStack_44[iVar18]" (identifier "adStack_44") ([ "[") (identifier "iVar18") (] "]")) (= "=") (cast_expression "(double)local_104" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_104"))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != 4)" (( "(") (binary_expression "iVar18 != 4" (identifier "iVar18") (!= "!=") (number_literal "4")) () ")")) (; ";")) (expression_statement "local_a8 = local_a8 + 4;" (assignment_expression "local_a8 = local_a8 + 4" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 4" (identifier "local_a8") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_b8 = 0;" (assignment_expression "iStack_b8 = 0" (identifier "iStack_b8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar11 != 0) {\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar26 = 0;\n            if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            local_bc = uVar16 - 1;\n            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" ({ "{") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar11 < 0x41) {\n              uVar26 = uVar11;\n            }" (if "if") (parenthesized_expression "(uVar11 < 0x41)" (( "(") (binary_expression "uVar11 < 0x41" (identifier "uVar11") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n              uVar26 = uVar11;\n            }" ({ "{") (expression_statement "uVar26 = uVar11;" (assignment_expression "uVar26 = uVar11" (identifier "uVar26") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" (identifier "uVar16") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar17") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" (if "if") (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" (( "(") (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "local_bc = uVar16 - 1;" (assignment_expression "local_bc = uVar16 - 1" (identifier "local_bc") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0)" (identifier "iStack_b8") (= "=") (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" (( "(") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < adStack_44[1]) {\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(0.0 < adStack_44[1])" (( "(") (binary_expression "0.0 < adStack_44[1]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[1]" (identifier "adStack_44") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n            fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n            if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }\n            local_b4 = -1;\n            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;\n            if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }\n          }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n              fVar1 = fVar1 + DAT_0029f714;\n            }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f714;\n            }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" (identifier "local_b4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[1])" (( "(") (binary_expression "(double)fVar1 * adStack_44[1]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[1]" (identifier "adStack_44") ([ "[") (number_literal "1") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n              dVar3 = dVar3 + (double)DAT_0029f124;\n              if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }\n            }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }\n              else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n              }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_b4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                local_b4 = (longlong)ROUND(dVar3);\n              }" (else "else") (compound_statement "{\n                local_b4 = (longlong)ROUND(dVar3);\n              }" ({ "{") (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" (identifier "local_b4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (if_statement "if (uVar26 == 0) {\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_3[0x14] = 8;\n            uVar26 = 8;\n          }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (} "}"))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 1)" (( "(") (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155924;\n            local_b4 = 0;\n          }" ({ "{") (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155924;" (if "if") (parenthesized_expression "(!NAN(adStack_44[0]))" (( "(") (unary_expression "!NAN(adStack_44[0])" (! "!") (call_expression "NAN(adStack_44[0])" (identifier "NAN") (argument_list "(adStack_44[0])" (( "(") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]")) () ")")))) () ")")) (goto_statement "goto code_r0x00155924;" (goto "goto") (statement_identifier "code_r0x00155924") (; ";"))) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (else "else") (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x0015590b:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }\n              uVar26 = param_3[0x14];\n            }" ({ "{") (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x0015590b;\n              }" ({ "{") (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n                  uVar17 = uVar11;\n                }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" (identifier "uVar16") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                  uVar11 = uVar16;\n                }" ({ "{") (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" (identifier "uVar11") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 != 0) break;" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar16 < 1) goto code_r0x0015590b;" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x0015590b;" (goto "goto") (statement_identifier "code_r0x0015590b") (; ";"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (labeled_statement "code_r0x0015590b:\n            uVar11 = *param_3;" (statement_identifier "code_r0x0015590b") (: ":") (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(NAN(adStack_44[0]))" (( "(") (call_expression "NAN(adStack_44[0])" (identifier "NAN") (argument_list "(adStack_44[0])" (( "(") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]")) () ")"))) () ")")) (compound_statement "{\n              local_b4 = 0;\n            }" ({ "{") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x00155924:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00155924:\n              local_b4 = 0;" (statement_identifier "code_r0x00155924") (: ":") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < adStack_44[0])" (( "(") (binary_expression "0.0 < adStack_44[0]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" (identifier "local_b4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" (( "(") (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_b4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" (identifier "local_b4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 1)" (( "(") (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155aac;\n            local_b4 = 0;\n          }" ({ "{") (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155aac;" (if "if") (parenthesized_expression "(!NAN(adStack_44[2]))" (( "(") (unary_expression "!NAN(adStack_44[2])" (! "!") (call_expression "NAN(adStack_44[2])" (identifier "NAN") (argument_list "(adStack_44[2])" (( "(") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]")) () ")")))) () ")")) (goto_statement "goto code_r0x00155aac;" (goto "goto") (statement_identifier "code_r0x00155aac") (; ";"))) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (else "else") (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155a93:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }\n              uVar26 = param_3[0x14];\n            }" ({ "{") (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155a93;\n              }" ({ "{") (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n                  uVar17 = uVar11;\n                }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" (identifier "uVar16") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                  uVar11 = uVar16;\n                }" ({ "{") (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" (identifier "uVar11") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 != 0) break;" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155a93;" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00155a93;" (goto "goto") (statement_identifier "code_r0x00155a93") (; ";"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (labeled_statement "code_r0x00155a93:\n            uVar11 = *param_3;" (statement_identifier "code_r0x00155a93") (: ":") (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (if_statement "if (NAN(adStack_44[2])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(NAN(adStack_44[2]))" (( "(") (call_expression "NAN(adStack_44[2])" (identifier "NAN") (argument_list "(adStack_44[2])" (( "(") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]")) () ")"))) () ")")) (compound_statement "{\n              local_b4 = 0;\n            }" ({ "{") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x00155aac:\n              local_b4 = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00155aac:\n              local_b4 = 0;" (statement_identifier "code_r0x00155aac") (: ":") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < adStack_44[2])" (( "(") (binary_expression "0.0 < adStack_44[2]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" (identifier "local_b4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" (( "(") (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_b4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" (identifier "local_b4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar11 < 1) {\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 1)" (( "(") (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            local_74 = *(int *)(param_1 + 0x298);\n            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;\n            local_b4 = 0;\n          }" ({ "{") (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" (identifier "local_74") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (!NAN(adStack_44[3])) goto code_r0x00155c3d;" (if "if") (parenthesized_expression "(!NAN(adStack_44[3]))" (( "(") (unary_expression "!NAN(adStack_44[3])" (! "!") (call_expression "NAN(adStack_44[3])" (identifier "NAN") (argument_list "(adStack_44[3])" (( "(") (subscript_expression "adStack_44[3]" (identifier "adStack_44") ([ "[") (number_literal "3") (] "]")) () ")")))) () ")")) (goto_statement "goto code_r0x00155c3d;" (goto "goto") (statement_identifier "code_r0x00155c3d") (; ";"))) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (else "else") (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);\n            uVar11 = *param_3;\n            if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }\n              uVar26 = param_3[0x14];\n            }" ({ "{") (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155c13;\n              }" ({ "{") (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n                  uVar17 = uVar11;\n                }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" (identifier "uVar16") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                  uVar11 = uVar16;\n                }" ({ "{") (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" (identifier "uVar11") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 != 0) break;" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155c13;" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00155c13;" (goto "goto") (statement_identifier "code_r0x00155c13") (; ";"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (labeled_statement "code_r0x00155c13:\n            local_74 = *(int *)(param_1 + 0x298);" (statement_identifier "code_r0x00155c13") (: ":") (expression_statement "local_74 = *(int *)(param_1 + 0x298);" (assignment_expression "local_74 = *(int *)(param_1 + 0x298)" (identifier "local_74") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (NAN(adStack_44[3])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(NAN(adStack_44[3]))" (( "(") (call_expression "NAN(adStack_44[3])" (identifier "NAN") (argument_list "(adStack_44[3])" (( "(") (subscript_expression "adStack_44[3]" (identifier "adStack_44") ([ "[") (number_literal "3") (] "]")) () ")"))) () ")")) (compound_statement "{\n              local_b4 = 0;\n            }" ({ "{") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x00155c3d:\n              local_b4 = 0;\n              if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00155c3d:\n              local_b4 = 0;" (statement_identifier "code_r0x00155c3d") (: ":") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < adStack_44[3]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < adStack_44[3])" (( "(") (binary_expression "0.0 < adStack_44[3]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[3]" (identifier "adStack_44") ([ "[") (number_literal "3") (] "]"))) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" (identifier "local_b4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[3])" (( "(") (binary_expression "(double)fVar1 * adStack_44[3]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[3]" (identifier "adStack_44") ([ "[") (number_literal "3") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_b4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" (identifier "local_b4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 1)" (( "(") (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;\n            local_b4 = 0;\n          }" ({ "{") (if_statement "if (!NAN(adStack_44[0])) goto code_r0x00155dc3;" (if "if") (parenthesized_expression "(!NAN(adStack_44[0]))" (( "(") (unary_expression "!NAN(adStack_44[0])" (! "!") (call_expression "NAN(adStack_44[0])" (identifier "NAN") (argument_list "(adStack_44[0])" (( "(") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]")) () ")")))) () ")")) (goto_statement "goto code_r0x00155dc3;" (goto "goto") (statement_identifier "code_r0x00155dc3") (; ";"))) (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" (else "else") (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155db1:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }\n              uVar26 = param_3[0x14];\n            }" ({ "{") (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155db1;\n              }" ({ "{") (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n                  uVar17 = uVar11;\n                }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" (identifier "uVar16") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                  uVar11 = uVar16;\n                }" ({ "{") (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" (identifier "uVar11") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 != 0) break;" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155db1;" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00155db1;" (goto "goto") (statement_identifier "code_r0x00155db1") (; ";"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (labeled_statement "code_r0x00155db1:\n            uVar11 = *param_3;" (statement_identifier "code_r0x00155db1") (: ":") (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (if_statement "if (NAN(adStack_44[0])) {\n              local_b4 = 0;\n            }\n            else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(NAN(adStack_44[0]))" (( "(") (call_expression "NAN(adStack_44[0])" (identifier "NAN") (argument_list "(adStack_44[0])" (( "(") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]")) () ")"))) () ")")) (compound_statement "{\n              local_b4 = 0;\n            }" ({ "{") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x00155dc3:\n              local_b4 = 0;\n              if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00155dc3:\n              local_b4 = 0;" (statement_identifier "code_r0x00155dc3") (: ":") (expression_statement "local_b4 = 0;" (assignment_expression "local_b4 = 0" (identifier "local_b4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < adStack_44[0]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < adStack_44[0])" (( "(") (binary_expression "0.0 < adStack_44[0]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_b4 = -1;\n                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_b4 = -1;" (assignment_expression "local_b4 = -1" (identifier "local_b4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[0])" (( "(") (binary_expression "(double)fVar1 * adStack_44[0]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[0]" (identifier "adStack_44") ([ "[") (number_literal "0") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_b4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    local_b4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "local_b4 = (longlong)ROUND(dVar3);" (assignment_expression "local_b4 = (longlong)ROUND(dVar3)" (identifier "local_b4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_3[0x14] = 8;\n              uVar26 = 8;\n            }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((int)uVar11 < 1) {\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }\n          else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" (if "if") (parenthesized_expression "((int)uVar11 < 1)" (( "(") (binary_expression "(int)uVar11 < 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            if (!NAN(adStack_44[2])) goto code_r0x00155f45;\n            local_fc = 0;\n            uVar17 = uVar11;\n          }" ({ "{") (if_statement "if (!NAN(adStack_44[2])) goto code_r0x00155f45;" (if "if") (parenthesized_expression "(!NAN(adStack_44[2]))" (( "(") (unary_expression "!NAN(adStack_44[2])" (! "!") (call_expression "NAN(adStack_44[2])" (identifier "NAN") (argument_list "(adStack_44[2])" (( "(") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]")) () ")")))) () ")")) (goto_statement "goto code_r0x00155f45;" (goto "goto") (statement_identifier "code_r0x00155f45") (; ";"))) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" (identifier "local_fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}")) (else_clause "else {\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" (else "else") (compound_statement "{\n            do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);\ncode_r0x00155f33:\n            uVar11 = *param_3;\n            if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }\n            uVar17 = uVar11;\n            if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            } while (0 < (int)uVar16);" (do "do") (compound_statement "{\n              while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }\n              uVar26 = param_3[0x14];\n            }" ({ "{") (while_statement "while( true ) {\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar17 = uVar26;\n                if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }\n                uVar16 = uVar11 - uVar17;\n                uVar11 = 0;\n                if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }\n                if (uVar26 == 8) {\n                  *param_5 = 0;\n                }\n                uVar26 = uVar26 - uVar17;\n                param_3[0x14] = uVar26;\n                bVar25 = (byte)uVar11 & 0x1f;\n                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;\n                if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }\n                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n                if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar26 != 0) break;\n                param_5 = param_5 + 1;\n                param_3[0x14] = 8;\n                uVar26 = 8;\n                if ((int)uVar16 < 1) goto code_r0x00155f33;\n              }" ({ "{") (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n                  uVar17 = uVar11;\n                }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n                  uVar17 = uVar11;\n                }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar11 - uVar17;" (assignment_expression "uVar16 = uVar11 - uVar17" (identifier "uVar16") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar16) {\n                  uVar11 = uVar16;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar16)" (( "(") (binary_expression "-1 < (int)uVar16" (number_literal "-1") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n                  uVar11 = uVar16;\n                }" ({ "{") (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" (identifier "uVar11") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_b4 >> bVar25" (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_b4._4_4_ << 0x20 - bVar25" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_b4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_b4._4_4_" (identifier "local_b4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 != 0) break;" (if "if") (parenthesized_expression "(uVar26 != 0)" (( "(") (binary_expression "uVar26 != 0" (identifier "uVar26") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar26 = 8;" (assignment_expression "uVar26 = 8" (identifier "uVar26") (= "=") (number_literal "8")) (; ";")) (if_statement "if ((int)uVar16 < 1) goto code_r0x00155f33;" (if "if") (parenthesized_expression "((int)uVar16 < 1)" (( "(") (binary_expression "(int)uVar16 < 1" (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto code_r0x00155f33;" (goto "goto") (statement_identifier "code_r0x00155f33") (; ";"))) (} "}"))) (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar16)" (( "(") (binary_expression "0 < (int)uVar16" (number_literal "0") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (; ";")) (labeled_statement "code_r0x00155f33:\n            uVar11 = *param_3;" (statement_identifier "code_r0x00155f33") (: ":") (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (if_statement "if (NAN(adStack_44[2])) {\n              local_fc = 0;\n            }\n            else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(NAN(adStack_44[2]))" (( "(") (call_expression "NAN(adStack_44[2])" (identifier "NAN") (argument_list "(adStack_44[2])" (( "(") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]")) () ")"))) () ")")) (compound_statement "{\n              local_fc = 0;\n            }" ({ "{") (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" (identifier "local_fc") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" (else "else") (compound_statement "{\ncode_r0x00155f45:\n              local_fc = 0;\n              if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n            }" ({ "{") (labeled_statement "code_r0x00155f45:\n              local_fc = 0;" (statement_identifier "code_r0x00155f45") (: ":") (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" (identifier "local_fc") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (0.0 < adStack_44[2]) {\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < adStack_44[2])" (( "(") (binary_expression "0.0 < adStack_44[2]" (number_literal "0.0") (< "<") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]"))) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_b8,local_bc);\n                if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                local_fc = -1;\n                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_b8,local_bc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_b8,local_bc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_b8,local_bc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_b8,local_bc)" (identifier "CONCAT44") (argument_list "(iStack_b8,local_bc)" (( "(") (identifier "iStack_b8") (, ",") (identifier "local_bc") () ")"))))) (; ";")) (if_statement "if (iStack_b8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_b8 < 0)" (( "(") (binary_expression "iStack_b8 < 0" (identifier "iStack_b8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "local_fc = -1;" (assignment_expression "local_fc = -1" (identifier "local_fc") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * adStack_44[2])" (( "(") (binary_expression "(double)fVar1 * adStack_44[2]" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (subscript_expression "adStack_44[2]" (identifier "adStack_44") ([ "[") (number_literal "2") (] "]"))) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "local_fc") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    local_fc = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "local_fc = (longlong)ROUND(dVar3);" (assignment_expression "local_fc = (longlong)ROUND(dVar3)" (identifier "local_fc") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (uVar26 == 0) {\n              param_3[0x14] = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_3[0x14] = 8;\n            }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}")))) (while_statement "while (0 < (int)uVar17) {\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" (while "while") (parenthesized_expression "(0 < (int)uVar17)" (( "(") (binary_expression "0 < (int)uVar17" (number_literal "0") (< "<") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar16 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }\n            uVar17 = uVar11 - uVar16;\n            uVar11 = 0;\n            if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar16;\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" ({ "{") (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar26;" (assignment_expression "uVar16 = uVar26" (identifier "uVar16") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n              uVar16 = uVar11;\n            }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n              uVar16 = uVar11;\n            }" ({ "{") (expression_statement "uVar16 = uVar11;" (assignment_expression "uVar16 = uVar11" (identifier "uVar16") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar11 - uVar16;" (assignment_expression "uVar17 = uVar11 - uVar16" (identifier "uVar17") (= "=") (binary_expression "uVar11 - uVar16" (identifier "uVar11") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar17) {\n              uVar11 = uVar17;\n            }" (if "if") (parenthesized_expression "(-1 < (int)uVar17)" (( "(") (binary_expression "-1 < (int)uVar17" (number_literal "-1") (< "<") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n              uVar11 = uVar17;\n            }" ({ "{") (expression_statement "uVar11 = uVar17;" (assignment_expression "uVar11 = uVar17" (identifier "uVar11") (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              *param_5 = 0;\n            }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar16;" (assignment_expression "uVar26 = uVar26 - uVar16" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar16" (identifier "uVar26") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25" (binary_expression "(uint)local_fc >> bVar25" (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "local_fc._4_4_ << 0x20 - bVar25" (field_expression "local_fc._4_4_" (identifier "local_fc") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" ({ "{") (expression_statement "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "local_fc._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "local_fc._4_4_" (identifier "local_fc") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar16 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar16 & 0x1f)" (( "(") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar25 = 0;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;" (assignment_expression "local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8" (identifier "local_c4") (+ "+") (binary_expression "(local_74 + *(int *)(param_1 + 0x298)) * 8" (parenthesized_expression "(local_74 + *(int *)(param_1 + 0x298))" (( "(") (binary_expression "local_74 + *(int *)(param_1 + 0x298)" (identifier "local_74") (+ "+") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) () ")")) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (if_statement "if (local_a8 == (uVar29 >> 1) * 4 + 4) break;" (if "if") (parenthesized_expression "(local_a8 == (uVar29 >> 1) * 4 + 4)" (( "(") (binary_expression "local_a8 == (uVar29 >> 1) * 4 + 4" (identifier "local_a8") (== "==") (binary_expression "(uVar29 >> 1) * 4 + 4" (binary_expression "(uVar29 >> 1) * 4" (parenthesized_expression "(uVar29 >> 1)" (( "(") (binary_expression "uVar29 >> 1" (identifier "uVar29") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 10:\ncode_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "10") (: ":") (labeled_statement "code_r0x00155615:\n      FUN_00139c20(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00155615") (: ":") (expression_statement "FUN_00139c20(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00139c20(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00139c20") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0xb:\ncode_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0xb") (: ":") (labeled_statement "code_r0x001555e9:\n      FUN_0013bd70(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x001555e9") (: ":") (expression_statement "FUN_0013bd70(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013bd70(uVar30,local_c4,param_5,param_6)" (identifier "FUN_0013bd70") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0xc:\ncode_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0xc") (: ":") (labeled_statement "code_r0x001555bd:\n      FUN_00136f80(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x001555bd") (: ":") (expression_statement "FUN_00136f80(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136f80(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00136f80") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0xd:" (case "case") (number_literal "0xd") (: ":")) (case_statement "case 0x15:\ncode_r0x0015533d:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" (case "case") (number_literal "0x15") (: ":") (labeled_statement "code_r0x0015533d:\n      dVar5 = DAT_002a8000;" (statement_identifier "code_r0x0015533d") (: ":") (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";"))) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbaa;\n        goto code_r0x00159158;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportRedQuantum"" (" """) (string_content "ExportRedQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xbaa;" (assignment_expression "uVar11 = 0xbaa" (identifier "uVar11") (= "=") (number_literal "0xbaa")) (; ";")) (goto_statement "goto code_r0x00159158;" (goto "goto") (statement_identifier "code_r0x00159158") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportRedQuantum";\n        uVar11 = 0xbab;\n        goto code_r0x00159135;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportRedQuantum";" (assignment_expression "pcVar31 = "ExportRedQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportRedQuantum"" (" """) (string_content "ExportRedQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xbab;" (assignment_expression "uVar11 = 0xbab" (identifier "uVar11") (= "=") (number_literal "0xbab")) (; ";")) (goto_statement "goto code_r0x00159135;" (goto "goto") (statement_identifier "code_r0x00159135") (; ";")) (} "}"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x10)" (( "(") (binary_expression "uVar29 == 0x10" (identifier "uVar29") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" (identifier "uVar10") (= "=") (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           ))" (( "(") (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)\n                                           )" (( "(") (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar3")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")"))) () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" ({ "{") (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 < 0x11)" (( "(") (binary_expression "uVar29 < 0x11" (identifier "uVar29") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar29 == 8)" (( "(") (binary_expression "uVar29 == 8" (identifier "uVar29") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (= "=") (binary_expression "dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar3 < (double)DAT_002a7ff4" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (else "else") (compound_statement "{\ncode_r0x0015742f:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" ({ "{") (labeled_statement "code_r0x0015742f:\n          iStack_cc = 0;" (statement_identifier "code_r0x0015742f") (: ":") (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" (identifier "iStack_cc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" (identifier "iStack_c8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar29 != 0) {\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x0015539d:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" ({ "{") (labeled_statement "code_r0x0015539d:\n            uVar26 = 0;" (statement_identifier "code_r0x0015539d") (: ":") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" (if "if") (parenthesized_expression "(uVar29 < 0x41)" (( "(") (binary_expression "uVar29 < 0x41" (identifier "uVar29") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n              uVar26 = uVar29;\n            }" ({ "{") (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" (identifier "uVar16") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar17") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" (if "if") (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" (( "(") (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" (identifier "iStack_cc") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" (identifier "iStack_c8") (= "=") (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" (( "(") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" ({ "{") (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" (identifier "iStack_d4") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" ({ "{") (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" (identifier "uStack_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_c8,iStack_cc)" (identifier "CONCAT44") (argument_list "(iStack_c8,iStack_cc)" (( "(") (identifier "iStack_c8") (, ",") (identifier "iStack_cc") () ")"))))) (; ";")) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_c8 < 0)" (( "(") (binary_expression "iStack_c8 < 0" (identifier "iStack_c8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" (identifier "uStack_e4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" (( "(") (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar3")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "uStack_e4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" (identifier "uStack_e4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_3[0x14] = 8;\n              }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" (while "while") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" ({ "{") (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" (identifier "uVar17") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" (if "if") (parenthesized_expression "(uVar29 <= uVar17)" (( "(") (binary_expression "uVar29 <= uVar17" (identifier "uVar29") (<= "<=") (identifier "uVar17")) () ")")) (compound_statement "{\n                  uVar16 = uVar29;\n                }" ({ "{") (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" (identifier "uVar16") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" (identifier "uVar26") (= "=") (binary_expression "uVar29 - uVar16" (identifier "uVar29") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar26)" (( "(") (binary_expression "-1 < (int)uVar26" (number_literal "-1") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar29 = uVar26;\n                }" ({ "{") (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" (identifier "uVar29") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar17 == 8)" (( "(") (binary_expression "uVar17 == 8" (identifier "uVar17") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" (identifier "uVar17") (= "=") (binary_expression "uVar17 - uVar16" (identifier "uVar17") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar29 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" (( "(") (binary_expression "uVar29 & 0x20" (identifier "uVar29") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar29 & 0x1f)" (( "(") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar16 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar16 & 0x1f)" (( "(") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar17 & 0x20) != 0)" (( "(") (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" (( "(") (binary_expression "uVar17 & 0x20" (identifier "uVar17") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" (identifier "iStack_d4") (= "=") (binary_expression "iStack_d4 + 1" (identifier "iStack_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iStack_d4 == (uint)local_fc) break;" (if "if") (parenthesized_expression "(iStack_d4 == (uint)local_fc)" (( "(") (binary_expression "iStack_d4 == (uint)local_fc" (identifier "iStack_d4") (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x20)" (( "(") (binary_expression "uVar29 == 0x20" (identifier "uVar29") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *\n                      (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (else "else") (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" ({ "{") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (else "else") (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015742f;\n        if (param_3[2] != 1) goto code_r0x0015539d;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" ({ "{") (if_statement "if (uVar29 != 0x40) goto code_r0x0015742f;" (if "if") (parenthesized_expression "(uVar29 != 0x40)" (( "(") (binary_expression "uVar29 != 0x40" (identifier "uVar29") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x0015742f;" (goto "goto") (statement_identifier "code_r0x0015742f") (; ";"))) (if_statement "if (param_3[2] != 1) goto code_r0x0015539d;" (if "if") (parenthesized_expression "(param_3[2] != 1)" (( "(") (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto code_r0x0015539d;" (goto "goto") (statement_identifier "code_r0x0015539d") (; ";"))) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" ({ "{") (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" (identifier "dVar6") (= "=") (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 8)" (( "(") (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" (identifier "iStack_d4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" (identifier "bStack_ec") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" (identifier "iStack_cc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" (identifier "uStack_e4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" ({ "{") (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bStack_ec")) (; ";")) (} "}")) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (else "else") (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bStack_ec")) (; ";")) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\ncode_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0xe") (: ":") (labeled_statement "code_r0x00155311:\n      FUN_00152ff0(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00155311") (: ":") (expression_statement "FUN_00152ff0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00152ff0(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00152ff0") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0xf:\ncode_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0xf") (: ":") (labeled_statement "code_r0x001552e5:\n      FUN_0013def0(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x001552e5") (: ":") (expression_statement "FUN_0013def0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0013def0(uVar30,local_c4,param_5,param_6)" (identifier "FUN_0013def0") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x13:\ncode_r0x00155065:\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }\n      uVar29 = *param_3;\n      if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }\n      break;" (case "case") (number_literal "0x13") (: ":") (labeled_statement "code_r0x00155065:\n      dVar5 = DAT_002a8000;" (statement_identifier "code_r0x00155065") (: ":") (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";"))) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96d;\n        goto code_r0x00159158;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportGreenQuantum"" (" """) (string_content "ExportGreenQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x96d;" (assignment_expression "uVar11 = 0x96d" (identifier "uVar11") (= "=") (number_literal "0x96d")) (; ";")) (goto_statement "goto code_r0x00159158;" (goto "goto") (statement_identifier "code_r0x00159158") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportGreenQuantum";\n        uVar11 = 0x96e;\n        goto code_r0x00159135;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportGreenQuantum";" (assignment_expression "pcVar31 = "ExportGreenQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportGreenQuantum"" (" """) (string_content "ExportGreenQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0x96e;" (assignment_expression "uVar11 = 0x96e" (identifier "uVar11") (= "=") (number_literal "0x96e")) (; ";")) (goto_statement "goto code_r0x00159135;" (goto "goto") (statement_identifier "code_r0x00159135") (; ";")) (} "}"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar29 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x10)" (( "(") (binary_expression "uVar29 == 0x10" (identifier "uVar29") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));" (assignment_expression "uVar10 = FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (identifier "uVar10") (= "=") (call_expression "FUN_00136290((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (identifier "FUN_00136290") (argument_list "((float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)))" (( "(") (cast_expression "(float)((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8))" (( "(") (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)\n                                           *(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (binary_expression "(longdouble)dVar3 *\n                                           (longdouble)" (cast_expression "(longdouble)dVar3" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "dVar3")) (* "*") (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")"))) (* "*") (cast_expression "(double *)\n                                            (local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 +\n                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) () ")"))) () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                iVar18 = 0;\n                bVar25 = 0;\n              }\n              else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                iVar18 = 0;\n                bVar25 = 0;\n              }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (if_statement "if ((double)DAT_0029f710 <= dVar3) {\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }\n              else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (if "if") (parenthesized_expression "((double)DAT_0029f710 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f710 <= dVar3" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                iVar18 = -1;\n                bVar25 = 0xff;\n              }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" (else "else") (compound_statement "{\n                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);\n                bVar25 = (byte)((uint)iVar18 >> 8);\n              }" ({ "{") (expression_statement "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 < 0x11) {\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }\n      else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 < 0x11)" (( "(") (binary_expression "uVar29 < 0x11" (identifier "uVar29") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (uVar29 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar29 == 8)" (( "(") (binary_expression "uVar29 == 8" (identifier "uVar29") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              bVar25 = 0;\n              if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }\n              iVar13 = iVar13 + 1;\n              *param_5 = bVar25;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0.0 < dVar3) {\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                dVar3 = dVar3 / (double)DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 / (double)DAT_002a7ff0;" (assignment_expression "dVar3 = dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (= "=") (binary_expression "dVar3 / (double)DAT_002a7ff0" (identifier "dVar3") (/ "/") (cast_expression "(double)DAT_002a7ff0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff0")))) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (dVar3 < (double)DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_002a7ff4)" (( "(") (binary_expression "dVar3 < (double)DAT_002a7ff4" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_002a7ff4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7ff4"))) () ")")) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);\n                }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" (else "else") (compound_statement "{\ncode_r0x0015755d:\n          iStack_cc = 0;\n          iStack_c8 = 0;\n          if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }\n          if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }\n        }" ({ "{") (labeled_statement "code_r0x0015755d:\n          iStack_cc = 0;" (statement_identifier "code_r0x0015755d") (: ":") (expression_statement "iStack_cc = 0;" (assignment_expression "iStack_cc = 0" (identifier "iStack_cc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_c8 = 0;" (assignment_expression "iStack_c8 = 0" (identifier "iStack_c8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar29 != 0) {\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" (if "if") (parenthesized_expression "(uVar29 != 0)" (( "(") (binary_expression "uVar29 != 0" (identifier "uVar29") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x001550c5:\n            uVar26 = 0;\n            if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }\n            bVar19 = (byte)(uVar26 - 1);\n            bVar25 = bVar19 & 0x1f;\n            uVar15 = 2 << (bVar19 & 0x1f);\n            uVar16 = uVar15;\n            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n            if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }\n            iStack_cc = uVar16 - 1;\n            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);\n          }" ({ "{") (labeled_statement "code_r0x001550c5:\n            uVar26 = 0;" (statement_identifier "code_r0x001550c5") (: ":") (expression_statement "uVar26 = 0;" (assignment_expression "uVar26 = 0" (identifier "uVar26") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar29 < 0x41) {\n              uVar26 = uVar29;\n            }" (if "if") (parenthesized_expression "(uVar29 < 0x41)" (( "(") (binary_expression "uVar29 < 0x41" (identifier "uVar29") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n              uVar26 = uVar29;\n            }" ({ "{") (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar26 - 1);" (assignment_expression "bVar19 = (byte)(uVar26 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar26 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar15 = 2 << (bVar19 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar16 = uVar15;" (assignment_expression "uVar16 = uVar15" (identifier "uVar16") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar17") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar26 - 1 & 0x20) != 0) {\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" (if "if") (parenthesized_expression "((uVar26 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 - 1 & 0x20) != 0" (parenthesized_expression "(uVar26 - 1 & 0x20)" (( "(") (binary_expression "uVar26 - 1 & 0x20" (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = 0;\n              uVar17 = uVar15;\n            }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = uVar15;" (assignment_expression "uVar17 = uVar15" (identifier "uVar17") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "iStack_cc = uVar16 - 1;" (assignment_expression "iStack_cc = uVar16 - 1" (identifier "iStack_cc") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);" (assignment_expression "iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0)" (identifier "iStack_c8") (= "=") (binary_expression "(uVar17 - 1) + (uint)(uVar16 != 0)" (parenthesized_expression "(uVar17 - 1)" (( "(") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar16 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (0 < (int)(uint)local_fc) {\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iStack_d4 = 0;\n            while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }\n          }" ({ "{") (expression_statement "iStack_d4 = 0;" (assignment_expression "iStack_d4 = 0" (identifier "iStack_d4") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uStack_e4 = 0;\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }\n              uVar26 = uVar29;\n              if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }\n              while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }\n              iStack_d4 = iStack_d4 + 1;\n              param_5 = param_5 + param_3[9];\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              if (iStack_d4 == (uint)local_fc) break;\n              uVar29 = *param_3;\n            }" ({ "{") (expression_statement "uStack_e4 = 0;" (assignment_expression "uStack_e4 = 0" (identifier "uStack_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (0.0 < dVar3) {\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(0.0 < dVar3)" (( "(") (binary_expression "0.0 < dVar3" (number_literal "0.0") (< "<") (identifier "dVar3")) () ")")) (compound_statement "{\n                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);\n                if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }\n                uStack_e4 = -1;\n                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;\n                if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }\n              }" ({ "{") (expression_statement "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);" (assignment_expression "fVar1 = (float)CONCAT44(iStack_c8,iStack_cc)" (identifier "fVar1") (= "=") (cast_expression "(float)CONCAT44(iStack_c8,iStack_cc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_c8,iStack_cc)" (identifier "CONCAT44") (argument_list "(iStack_c8,iStack_cc)" (( "(") (identifier "iStack_c8") (, ",") (identifier "iStack_cc") () ")"))))) (; ";")) (if_statement "if (iStack_c8 < 0) {\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" (if "if") (parenthesized_expression "(iStack_c8 < 0)" (( "(") (binary_expression "iStack_c8 < 0" (identifier "iStack_c8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  fVar1 = fVar1 + DAT_0029f714;\n                }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f714;" (assignment_expression "fVar1 = fVar1 + DAT_0029f714" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f714" (identifier "fVar1") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_e4 = -1;" (assignment_expression "uStack_e4 = -1" (identifier "uStack_e4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;" (assignment_expression "dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710" (identifier "dVar3") (= "=") (binary_expression "((double)fVar1 * dVar3) / (double)DAT_0029f710" (parenthesized_expression "((double)fVar1 * dVar3)" (( "(") (binary_expression "(double)fVar1 * dVar3" (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) (* "*") (identifier "dVar3")) () ")")) (/ "/") (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")))) (; ";")) (if_statement "if (dVar3 < (double)DAT_0029f714) {\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(dVar3 < (double)DAT_0029f714)" (( "(") (binary_expression "dVar3 < (double)DAT_0029f714" (identifier "dVar3") (< "<") (cast_expression "(double)DAT_0029f714" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f714"))) () ")")) (compound_statement "{\n                  dVar3 = dVar3 + (double)DAT_0029f124;\n                  if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 + (double)DAT_0029f124;" (assignment_expression "dVar3 = dVar3 + (double)DAT_0029f124" (identifier "dVar3") (= "=") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124")))) (; ";")) (if_statement "if ((double)DAT_0029f134 <= dVar3) {\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }\n                  else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (if "if") (parenthesized_expression "((double)DAT_0029f134 <= dVar3)" (( "(") (binary_expression "(double)DAT_0029f134 <= dVar3" (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134")) (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);\n                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);\n                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 - (double)DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 - (double)DAT_0029f134)" (identifier "ROUND") (argument_list "(dVar3 - (double)DAT_0029f134)" (( "(") (binary_expression "dVar3 - (double)DAT_0029f134" (identifier "dVar3") (- "-") (cast_expression "(double)DAT_0029f134" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f134"))) () ")"))))) (; ";")) (expression_statement "iStack_60 = (int)((ulonglong)lVar4 >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)lVar4 >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);" (assignment_expression "uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "uStack_e4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,(int)lVar4)" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,(int)lVar4)" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)lVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" (else "else") (compound_statement "{\n                    uStack_e4 = (longlong)ROUND(dVar3);\n                  }" ({ "{") (expression_statement "uStack_e4 = (longlong)ROUND(dVar3);" (assignment_expression "uStack_e4 = (longlong)ROUND(dVar3)" (identifier "uStack_e4") (= "=") (cast_expression "(longlong)ROUND(dVar3)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3)" (identifier "ROUND") (argument_list "(dVar3)" (( "(") (identifier "dVar3") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar26 = uVar29;" (assignment_expression "uVar26 = uVar29" (identifier "uVar26") (= "=") (identifier "uVar29")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n                param_3[0x14] = 8;\n              }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_3[0x14] = 8;\n              }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar26) {\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" (while "while") (parenthesized_expression "(0 < (int)uVar26)" (( "(") (binary_expression "0 < (int)uVar26" (number_literal "0") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                uVar17 = param_3[0x14];\n                uVar16 = uVar17;\n                if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }\n                uVar26 = uVar29 - uVar16;\n                uVar29 = 0;\n                if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }\n                if (uVar17 == 8) {\n                  *param_5 = 0;\n                }\n                uVar17 = uVar17 - uVar16;\n                bVar25 = (byte)uVar29 & 0x1f;\n                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;\n                if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }\n                param_3[0x14] = uVar17;\n                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));\n                if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }\n                *param_5 = *param_5 | bVar25;\n                if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }\n              }" ({ "{") (expression_statement "uVar17 = param_3[0x14];" (assignment_expression "uVar17 = param_3[0x14]" (identifier "uVar17") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar29 <= uVar17) {\n                  uVar16 = uVar29;\n                }" (if "if") (parenthesized_expression "(uVar29 <= uVar17)" (( "(") (binary_expression "uVar29 <= uVar17" (identifier "uVar29") (<= "<=") (identifier "uVar17")) () ")")) (compound_statement "{\n                  uVar16 = uVar29;\n                }" ({ "{") (expression_statement "uVar16 = uVar29;" (assignment_expression "uVar16 = uVar29" (identifier "uVar16") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar29 - uVar16;" (assignment_expression "uVar26 = uVar29 - uVar16" (identifier "uVar26") (= "=") (binary_expression "uVar29 - uVar16" (identifier "uVar29") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar26) {\n                  uVar29 = uVar26;\n                }" (if "if") (parenthesized_expression "(-1 < (int)uVar26)" (( "(") (binary_expression "-1 < (int)uVar26" (number_literal "-1") (< "<") (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26"))) () ")")) (compound_statement "{\n                  uVar29 = uVar26;\n                }" ({ "{") (expression_statement "uVar29 = uVar26;" (assignment_expression "uVar29 = uVar26" (identifier "uVar29") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (uVar17 == 8) {\n                  *param_5 = 0;\n                }" (if "if") (parenthesized_expression "(uVar17 == 8)" (( "(") (binary_expression "uVar17 == 8" (identifier "uVar17") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n                  *param_5 = 0;\n                }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar17 = uVar17 - uVar16;" (assignment_expression "uVar17 = uVar17 - uVar16" (identifier "uVar17") (= "=") (binary_expression "uVar17 - uVar16" (identifier "uVar17") (- "-") (identifier "uVar16"))) (; ";")) (expression_statement "bVar25 = (byte)uVar29 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar29 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (identifier "uVar15") (= "=") (binary_expression "(uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_e4 >> bVar25" (cast_expression "(uint)uStack_e4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_e4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_e4._4_4_ << 0x20 - bVar25" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 & 0x20) != 0) {\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" (if "if") (parenthesized_expression "((uVar29 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" (( "(") (binary_expression "uVar29 & 0x20" (identifier "uVar29") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);\n                }" ({ "{") (expression_statement "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);" (assignment_expression "uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f)" (field_expression "uStack_e4._4_4_" (identifier "uStack_e4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar29 & 0x1f)" (( "(") (binary_expression "(byte)uVar29 & 0x1f" (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar17;" (assignment_expression "param_3[0x14] = uVar17" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar16 & 0x1f)) & uVar15)" (( "(") (binary_expression "~(-1 << ((byte)uVar16 & 0x1f)) & uVar15" (unary_expression "~(-1 << ((byte)uVar16 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar16 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar16 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar16 & 0x1f)" (( "(") (binary_expression "(byte)uVar16 & 0x1f" (cast_expression "(byte)uVar16" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar16")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar15")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar17 & 0x20) != 0) {\n                  bVar25 = 0;\n                }" (if "if") (parenthesized_expression "((uVar17 & 0x20) != 0)" (( "(") (binary_expression "(uVar17 & 0x20) != 0" (parenthesized_expression "(uVar17 & 0x20)" (( "(") (binary_expression "uVar17 & 0x20" (identifier "uVar17") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar25 = 0;\n                }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar17 == 0) {\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  param_5 = param_5 + 1;\n                  param_3[0x14] = 8;\n                }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iStack_d4 = iStack_d4 + 1;" (assignment_expression "iStack_d4 = iStack_d4 + 1" (identifier "iStack_d4") (= "=") (binary_expression "iStack_d4 + 1" (identifier "iStack_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iStack_d4 == (uint)local_fc) break;" (if "if") (parenthesized_expression "(iStack_d4 == (uint)local_fc)" (( "(") (binary_expression "iStack_d4 == (uint)local_fc" (identifier "iStack_d4") (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar29 = *param_3;" (assignment_expression "uVar29 = *param_3" (identifier "uVar29") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")) (else_clause "else if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (if_statement "if (uVar29 == 0x20) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }\n      else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (if "if") (parenthesized_expression "(uVar29 == 0x20)" (( "(") (binary_expression "uVar29 == 0x20" (identifier "uVar29") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            dVar3 = *(double *)(param_3 + 0x11);\n            dVar5 = *(double *)(param_3 + 3);\n            uVar29 = param_3[0x10];\n            do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;\n              bVar25 = (byte)((uint)fVar1 >> 8);\n              bVar21 = (byte)((uint)fVar1 >> 0x18);\n              bVar19 = (byte)((uint)fVar1 >> 0x10);\n              if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" (identifier "fVar1") (= "=") (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3 + (float)dVar5" (binary_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)\n                      * (float)dVar3" (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB41(fVar1,0);\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = SUB41(fVar1,0);\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);\n              if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 4;\n            }" ({ "{") (expression_statement "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);" (assignment_expression "dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (dVar3 <= 0.0) {\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }\n              else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (if "if") (parenthesized_expression "(dVar3 <= 0.0)" (( "(") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                uStack_64._0_1_ = 0;\n                bVar25 = 0;\n                bVar19 = 0;\n                bVar21 = 0;\n              }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" (else "else") (compound_statement "{\n                dVar3 = dVar3 * (double)DAT_002a7fec;\n                if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }\n              }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) {\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }\n                else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                  uStack_64._0_1_ = 0xff;\n                  bVar25 = 0xff;\n                  bVar19 = 0xff;\n                  bVar21 = 0xff;\n                }" ({ "{") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" (else "else") (compound_statement "{\n                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                  uStack_64._0_1_ = (byte)lVar4;\n                  bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }\n              else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uStack_64;\n                param_5[1] = bVar25;\n                param_5[2] = bVar19;\n                param_5[3] = bVar21;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = bVar25;\n                param_5[3] = (byte)uStack_64;\n              }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar29 != 0x40) goto code_r0x0015755d;\n        if (param_3[2] != 1) goto code_r0x001550c5;\n        if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }\n      }" ({ "{") (if_statement "if (uVar29 != 0x40) goto code_r0x0015755d;" (if "if") (parenthesized_expression "(uVar29 != 0x40)" (( "(") (binary_expression "uVar29 != 0x40" (identifier "uVar29") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x0015755d;" (goto "goto") (statement_identifier "code_r0x0015755d") (; ";"))) (if_statement "if (param_3[2] != 1) goto code_r0x001550c5;" (if "if") (parenthesized_expression "(param_3[2] != 1)" (( "(") (binary_expression "param_3[2] != 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto code_r0x001550c5;" (goto "goto") (statement_identifier "code_r0x001550c5") (; ";"))) (if_statement "if (0 < (int)(uint)local_fc) {\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n          dVar3 = *(double *)(param_3 + 0x11);\n          iVar13 = 0;\n          dVar5 = *(double *)(param_3 + 3);\n          uVar29 = param_3[0x10];\n          do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);\n        }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = param_3[0x10];" (assignment_expression "uVar29 = param_3[0x10]" (identifier "uVar29") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;\n            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n            bVar19 = (byte)((ulonglong)dVar6 >> 8);\n            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);\n            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);\n            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n            if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }\n            iVar13 = iVar13 + 1;\n            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n            param_5 = param_5 + param_3[9] + 8;\n          }" ({ "{") (expression_statement "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5;" (assignment_expression "dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" (identifier "dVar6") (= "=") (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +\n                    dVar5" (binary_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3" (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 8)" (( "(") (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x20)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "iStack_d4._0_1_" (identifier "iStack_d4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bStack_ec = (byte)((ulonglong)dVar6 >> 0x38)" (identifier "bStack_ec") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "iStack_cc._0_1_" (identifier "iStack_cc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "uStack_e4._0_1_" (identifier "uStack_e4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (if_statement "if (uVar29 == 1) {\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }\n            else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (if "if") (parenthesized_expression "(uVar29 == 1)" (( "(") (binary_expression "uVar29 == 1" (identifier "uVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *param_5 = SUB81(dVar6,0);\n              param_5[4] = bVar21;\n              param_5[5] = bVar25;\n              param_5[1] = bVar19;\n              param_5[2] = (byte)iStack_cc;\n              param_5[3] = (byte)iStack_d4;\n              param_5[6] = (byte)uStack_e4;\n              param_5[7] = bStack_ec;\n            }" ({ "{") (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar21;" (assignment_expression "param_5[4] = bVar21" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)iStack_cc;" (assignment_expression "param_5[2] = (byte)iStack_cc" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[3] = (byte)iStack_d4;" (assignment_expression "param_5[3] = (byte)iStack_d4" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "param_5[6] = (byte)uStack_e4;" (assignment_expression "param_5[6] = (byte)uStack_e4" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[7] = bStack_ec;" (assignment_expression "param_5[7] = bStack_ec" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bStack_ec")) (; ";")) (} "}")) (else_clause "else {\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" (else "else") (compound_statement "{\n              param_5[2] = bVar25;\n              param_5[3] = bVar21;\n              param_5[7] = SUB81(dVar6,0);\n              param_5[4] = (byte)iStack_d4;\n              *param_5 = bStack_ec;\n              param_5[5] = (byte)iStack_cc;\n              param_5[1] = (byte)uStack_e4;\n              param_5[6] = bVar19;\n            }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)iStack_d4;" (assignment_expression "param_5[4] = (byte)iStack_d4" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)iStack_d4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_d4"))) (; ";")) (expression_statement "*param_5 = bStack_ec;" (assignment_expression "*param_5 = bStack_ec" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bStack_ec")) (; ";")) (expression_statement "param_5[5] = (byte)iStack_cc;" (assignment_expression "param_5[5] = (byte)iStack_cc" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)iStack_cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iStack_cc"))) (; ";")) (expression_statement "param_5[1] = (byte)uStack_e4;" (assignment_expression "param_5[1] = (byte)uStack_e4" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11:\ncode_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0x11") (: ":") (labeled_statement "code_r0x00155039:\n      FUN_00138a40(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00155039") (: ":") (expression_statement "FUN_00138a40(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00138a40(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00138a40") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0x12:\ncode_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0x12") (: ":") (labeled_statement "code_r0x0015500d:\n      FUN_00136440(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x0015500d") (: ":") (expression_statement "FUN_00136440(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00136440(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00136440") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0x14:\ncode_r0x00154e20:\n      iVar13 = (uint)local_fc;\n      dVar5 = DAT_002a8000;\n      dVar3 = _DAT_0029f148;\n      if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }\n      if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }\n      uVar11 = *param_3;\n      if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }\n      if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }\n      if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }\n      goto LAB_001548a8;" (case "case") (number_literal "0x14") (: ":") (labeled_statement "code_r0x00154e20:\n      iVar13 = (uint)local_fc;" (statement_identifier "code_r0x00154e20") (: ":") (expression_statement "iVar13 = (uint)local_fc;" (assignment_expression "iVar13 = (uint)local_fc" (identifier "iVar13") (= "=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) (; ";"))) (expression_statement "dVar5 = DAT_002a8000;" (assignment_expression "dVar5 = DAT_002a8000" (identifier "dVar5") (= "=") (identifier "DAT_002a8000")) (; ";")) (expression_statement "dVar3 = _DAT_0029f148;" (assignment_expression "dVar3 = _DAT_0029f148" (identifier "dVar3") (= "=") (identifier "_DAT_0029f148")) (; ";")) (if_statement "if (param_6 == 0) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb41;\n        goto code_r0x00159158;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportOpacityQuantum"" (" """) (string_content "ExportOpacityQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xb41;" (assignment_expression "uVar11 = 0xb41" (identifier "uVar11") (= "=") (number_literal "0xb41")) (; ";")) (goto_statement "goto code_r0x00159158;" (goto "goto") (statement_identifier "code_r0x00159158") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_6 + 0x1c) != -0x54535255) {\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_6 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_6 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n        pcVar31 = "ExportOpacityQuantum";\n        uVar11 = 0xb42;\n        goto code_r0x00159135;\n      }" ({ "{") (expression_statement "pcVar31 = "ExportOpacityQuantum";" (assignment_expression "pcVar31 = "ExportOpacityQuantum"" (identifier "pcVar31") (= "=") (string_literal ""ExportOpacityQuantum"" (" """) (string_content "ExportOpacityQuantum") (" """))) (; ";")) (expression_statement "uVar11 = 0xb42;" (assignment_expression "uVar11 = 0xb42" (identifier "uVar11") (= "=") (number_literal "0xb42")) (; ";")) (goto_statement "goto code_r0x00159135;" (goto "goto") (statement_identifier "code_r0x00159135") (; ";")) (} "}"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (if_statement "if (uVar11 == 0x10) {\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" (if "if") (parenthesized_expression "(uVar11 == 0x10)" (( "(") (binary_expression "uVar11 == 0x10" (identifier "uVar11") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        goto LAB_001548a8;\n      }" ({ "{") (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }\n        else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              fVar1 = 0.0;\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }\n              uVar10 = FUN_00136290(fVar1);\n              bVar25 = (byte)((ushort)uVar10 >> 8);\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" (identifier "fVar1") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;\n              }" ({ "{") (expression_statement "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3;" (assignment_expression "fVar1 = (DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" (identifier "fVar1") (= "=") (binary_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *\n                        (float)dVar3" (parenthesized_expression "(DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8))" (( "(") (binary_expression "DAT_0029f710 -\n                        (float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)\n                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) () ")")) (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3")))) (; ";")) (} "}"))) (expression_statement "uVar10 = FUN_00136290(fVar1);" (assignment_expression "uVar10 = FUN_00136290(fVar1)" (identifier "uVar10") (= "=") (call_expression "FUN_00136290(fVar1)" (identifier "FUN_00136290") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")")))) (; ";")) (expression_statement "bVar25 = (byte)((ushort)uVar10 >> 8);" (assignment_expression "bVar25 = (byte)((ushort)uVar10 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ushort)uVar10 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ushort)uVar10 >> 8)" (( "(") (binary_expression "(ushort)uVar10 >> 8" (cast_expression "(ushort)uVar10" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "uVar10")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)uVar10;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)uVar10;" (assignment_expression "*param_5 = (byte)uVar10" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)uVar10;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)uVar10;" (assignment_expression "param_5[1] = (byte)uVar10" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" (else "else") (compound_statement "{\n          iVar13 = 0;\n          if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }\n        }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (do_statement "do {\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              iVar18 = 0;\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }\n              if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 2;\n            }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (( "(") (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (, ",") (binary_expression "0.0 < fVar1" (number_literal "0.0") (< "<") (identifier "fVar1"))) () ")"))) () ")")) (compound_statement "{\n                if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }\n              }" ({ "{") (if_statement "if (DAT_0029f710 <= fVar1) {\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }\n                else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" (if "if") (parenthesized_expression "(DAT_0029f710 <= fVar1)" (( "(") (binary_expression "DAT_0029f710 <= fVar1" (identifier "DAT_0029f710") (<= "<=") (identifier "fVar1")) () ")")) (compound_statement "{\n                  iVar18 = -1;\n                  bVar25 = 0xff;\n                }" ({ "{") (expression_statement "iVar18 = -1;" (assignment_expression "iVar18 = -1" (identifier "iVar18") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" (else "else") (compound_statement "{\n                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);\n                  bVar25 = (byte)((uint)iVar18 >> 8);\n                }" ({ "{") (expression_statement "iVar18 = (int)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "iVar18 = (int)ROUND(fVar1 + DAT_0029f124)" (identifier "iVar18") (= "=") (cast_expression "(int)ROUND(fVar1 + DAT_0029f124)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(fVar1 + DAT_0029f124)" (identifier "ROUND") (argument_list "(fVar1 + DAT_0029f124)" (( "(") (binary_expression "fVar1 + DAT_0029f124" (identifier "fVar1") (+ "+") (identifier "DAT_0029f124")) () ")"))))) (; ";")) (expression_statement "bVar25 = (byte)((uint)iVar18 >> 8);" (assignment_expression "bVar25 = (byte)((uint)iVar18 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)iVar18 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)iVar18 >> 8)" (( "(") (binary_expression "(uint)iVar18 >> 8" (cast_expression "(uint)iVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar18")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (param_3[0x10] == 1) {\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }\n              else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = (byte)iVar18;\n                param_5[1] = bVar25;\n              }" ({ "{") (expression_statement "*param_5 = (byte)iVar18;" (assignment_expression "*param_5 = (byte)iVar18" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (} "}")) (else_clause "else {\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" (else "else") (compound_statement "{\n                *param_5 = bVar25;\n                param_5[1] = (byte)iVar18;\n              }" ({ "{") (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[1] = (byte)iVar18;" (assignment_expression "param_5[1] = (byte)iVar18" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 2;" (assignment_expression "param_5 = param_5 + param_3[9] + 2" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 2" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 < 0x11) {\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }\n      else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (if "if") (parenthesized_expression "(uVar11 < 0x11)" (( "(") (binary_expression "uVar11 < 0x11" (identifier "uVar11") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n        if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x0015768b:\n        iStack_dc = 0;\n        iStack_d8 = 0;\n        if (uVar11 != 0) goto code_r0x00154e80;\n      }" ({ "{") (if_statement "if (uVar11 == 8) {\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 8)" (( "(") (binary_expression "uVar11 == 8" (identifier "uVar11") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            iVar13 = 0;\n            do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n              bVar25 = 0;\n              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }\n              *param_5 = bVar25;\n              iVar13 = iVar13 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 1;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)) {\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n                 (fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1)" (( "(") (comma_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                 0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (, ",") (binary_expression "0.0 < fVar1" (number_literal "0.0") (< "<") (identifier "fVar1"))) () ")"))) () ")")) (compound_statement "{\n                fVar1 = fVar1 / DAT_002a7ff0;\n                bVar25 = 0xff;\n                if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }\n              }" ({ "{") (expression_statement "fVar1 = fVar1 / DAT_002a7ff0;" (assignment_expression "fVar1 = fVar1 / DAT_002a7ff0" (identifier "fVar1") (= "=") (binary_expression "fVar1 / DAT_002a7ff0" (identifier "fVar1") (/ "/") (identifier "DAT_002a7ff0"))) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (if_statement "if (fVar1 < DAT_002a7ff4) {\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" (if "if") (parenthesized_expression "(fVar1 < DAT_002a7ff4)" (( "(") (binary_expression "fVar1 < DAT_002a7ff4" (identifier "fVar1") (< "<") (identifier "DAT_002a7ff4")) () ")")) (compound_statement "{\n                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);\n                }" ({ "{") (expression_statement "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);" (assignment_expression "bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124)" (identifier "bVar25") (= "=") (cast_expression "(byte)(short)ROUND(fVar1 + DAT_0029f124)" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (cast_expression "(short)ROUND(fVar1 + DAT_0029f124)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (call_expression "ROUND(fVar1 + DAT_0029f124)" (identifier "ROUND") (argument_list "(fVar1 + DAT_0029f124)" (( "(") (binary_expression "fVar1 + DAT_0029f124" (identifier "fVar1") (+ "+") (identifier "DAT_0029f124")) () ")")))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_5 = bVar25;" (assignment_expression "*param_5 = bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 1;" (assignment_expression "param_5 = param_5 + param_3[9] + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 1" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x0015768b:\n        iStack_dc = 0;" (statement_identifier "code_r0x0015768b") (: ":") (expression_statement "iStack_dc = 0;" (assignment_expression "iStack_dc = 0" (identifier "iStack_dc") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iStack_d8 = 0;" (assignment_expression "iStack_d8 = 0" (identifier "iStack_d8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar11 != 0) goto code_r0x00154e80;" (if "if") (parenthesized_expression "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00154e80;" (goto "goto") (statement_identifier "code_r0x00154e80") (; ";"))) (} "}")) (else_clause "else {\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" (else "else") (compound_statement "{\n        if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }\n        if (uVar11 != 0x40) goto code_r0x0015768b;\n        if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }\ncode_r0x00154e80:\n        uVar29 = 0;\n        if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }\n        bVar19 = (byte)(uVar29 - 1);\n        bVar25 = bVar19 & 0x1f;\n        uVar16 = 2 << (bVar19 & 0x1f);\n        uVar17 = uVar16;\n        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;\n        if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }\n        iStack_dc = uVar17 - 1;\n        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);\n      }" ({ "{") (if_statement "if (uVar11 == 0x20) {\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0x20)" (( "(") (binary_expression "uVar11 == 0x20" (identifier "uVar11") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n          if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (param_3[2] == 1) {\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }\n          else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              iVar13 = 0;\n              dVar3 = *(double *)(param_3 + 0x11);\n              dVar5 = *(double *)(param_3 + 3);\n              uVar11 = param_3[0x10];\n              do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }\n                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;\n                bVar25 = (byte)((uint)fVar1 >> 8);\n                bVar21 = (byte)((uint)fVar1 >> 0x18);\n                bVar19 = (byte)((uint)fVar1 >> 0x10);\n                if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }\n                else {\n                  fVar1 = 0.0;\n                }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                  fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n                }" ({ "{") (expression_statement "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "fVar1 = DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                          (float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)\n                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (; ";")) (} "}")) (else_clause "else {\n                  fVar1 = 0.0;\n                }" (else "else") (compound_statement "{\n                  fVar1 = 0.0;\n                }" ({ "{") (expression_statement "fVar1 = 0.0;" (assignment_expression "fVar1 = 0.0" (identifier "fVar1") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "fVar1 = fVar1 * (float)dVar3 + (float)dVar5;" (assignment_expression "fVar1 = fVar1 * (float)dVar3 + (float)dVar5" (identifier "fVar1") (= "=") (binary_expression "fVar1 * (float)dVar3 + (float)dVar5" (binary_expression "fVar1 * (float)dVar3" (identifier "fVar1") (* "*") (cast_expression "(float)dVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar3"))) (+ "+") (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")))) (; ";")) (expression_statement "bVar25 = (byte)((uint)fVar1 >> 8);" (assignment_expression "bVar25 = (byte)((uint)fVar1 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((uint)fVar1 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 8)" (( "(") (binary_expression "(uint)fVar1 >> 8" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((uint)fVar1 >> 0x18);" (assignment_expression "bVar21 = (byte)((uint)fVar1 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x18)" (( "(") (binary_expression "(uint)fVar1 >> 0x18" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((uint)fVar1 >> 0x10);" (assignment_expression "bVar19 = (byte)((uint)fVar1 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((uint)fVar1 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)fVar1 >> 0x10)" (( "(") (binary_expression "(uint)fVar1 >> 0x10" (cast_expression "(uint)fVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = SUB41(fVar1,0);\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = SUB41(fVar1,0);" (assignment_expression "*param_5 = SUB41(fVar1,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = SUB41(fVar1,0);\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = SUB41(fVar1,0);" (assignment_expression "param_5[3] = SUB41(fVar1,0)" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "SUB41(fVar1,0)" (identifier "SUB41") (argument_list "(fVar1,0)" (( "(") (identifier "fVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" (else "else") (compound_statement "{\n            iVar13 = 0;\n            if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }\n          }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)(uint)local_fc) {\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n              do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);\n            }" ({ "{") (do_statement "do {\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              } while (iVar13 != (uint)local_fc);" (do "do") (compound_statement "{\n                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }\n                if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }\n                iVar13 = iVar13 + 1;\n                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n                param_5 = param_5 + param_3[9] + 4;\n              }" ({ "{") (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)) {\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }\n                else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||\n                   (dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0)" (( "(") (comma_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n                   dVar3 <= 0.0" (assignment_expression "dVar3 = (double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar3") (= "=") (binary_expression "(double)DAT_0029f710 -\n                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (- "-") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (, ",") (binary_expression "dVar3 <= 0.0" (identifier "dVar3") (<= "<=") (number_literal "0.0"))) () ")"))) () ")")) (compound_statement "{\n                  uStack_64._0_1_ = 0;\n                  bVar25 = 0;\n                  bVar19 = 0;\n                  bVar21 = 0;\n                }" ({ "{") (expression_statement "uStack_64._0_1_ = 0;" (assignment_expression "uStack_64._0_1_ = 0" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" (else "else") (compound_statement "{\n                  dVar3 = dVar3 * (double)DAT_002a7fec;\n                  if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }\n                }" ({ "{") (expression_statement "dVar3 = dVar3 * (double)DAT_002a7fec;" (assignment_expression "dVar3 = dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (= "=") (binary_expression "dVar3 * (double)DAT_002a7fec" (identifier "dVar3") (* "*") (cast_expression "(double)DAT_002a7fec" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002a7fec")))) (; ";")) (if_statement "if (dVar5 <= dVar3) {\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }\n                  else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (if "if") (parenthesized_expression "(dVar5 <= dVar3)" (( "(") (binary_expression "dVar5 <= dVar3" (identifier "dVar5") (<= "<=") (identifier "dVar3")) () ")")) (compound_statement "{\n                    uStack_64._0_1_ = 0xff;\n                    bVar25 = 0xff;\n                    bVar19 = 0xff;\n                    bVar21 = 0xff;\n                  }" ({ "{") (expression_statement "uStack_64._0_1_ = 0xff;" (assignment_expression "uStack_64._0_1_ = 0xff" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar25 = 0xff;" (assignment_expression "bVar25 = 0xff" (identifier "bVar25") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar19 = 0xff;" (assignment_expression "bVar19 = 0xff" (identifier "bVar19") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "bVar21 = 0xff;" (assignment_expression "bVar21 = 0xff" (identifier "bVar21") (= "=") (number_literal "0xff")) (; ";")) (} "}")) (else_clause "else {\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" (else "else") (compound_statement "{\n                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);\n                    uStack_64._0_1_ = (byte)lVar4;\n                    bVar25 = (byte)((ulonglong)lVar4 >> 8);\n                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);\n                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);\n                  }" ({ "{") (expression_statement "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);" (assignment_expression "lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124)" (identifier "lVar4") (= "=") (cast_expression "(longlong)ROUND(dVar3 + (double)DAT_0029f124)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(dVar3 + (double)DAT_0029f124)" (identifier "ROUND") (argument_list "(dVar3 + (double)DAT_0029f124)" (( "(") (binary_expression "dVar3 + (double)DAT_0029f124" (identifier "dVar3") (+ "+") (cast_expression "(double)DAT_0029f124" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f124"))) () ")"))))) (; ";")) (expression_statement "uStack_64._0_1_ = (byte)lVar4;" (assignment_expression "uStack_64._0_1_ = (byte)lVar4" (field_expression "uStack_64._0_1_" (identifier "uStack_64") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)lVar4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)lVar4 >> 8);" (assignment_expression "bVar25 = (byte)((ulonglong)lVar4 >> 8)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 8)" (( "(") (binary_expression "(ulonglong)lVar4 >> 8" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)lVar4 >> 0x18);" (assignment_expression "bVar21 = (byte)((ulonglong)lVar4 >> 0x18)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x18)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x18" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)lVar4 >> 0x10);" (assignment_expression "bVar19 = (byte)((ulonglong)lVar4 >> 0x10)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)lVar4 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)lVar4 >> 0x10)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x10" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (param_3[0x10] == 1) {\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }\n                else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (if "if") (parenthesized_expression "(param_3[0x10] == 1)" (( "(") (binary_expression "param_3[0x10] == 1" (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  *param_5 = (byte)uStack_64;\n                  param_5[1] = bVar25;\n                  param_5[2] = bVar19;\n                  param_5[3] = bVar21;\n                }" ({ "{") (expression_statement "*param_5 = (byte)uStack_64;" (assignment_expression "*param_5 = (byte)uStack_64" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (expression_statement "param_5[1] = bVar25;" (assignment_expression "param_5[1] = bVar25" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[2] = bVar19;" (assignment_expression "param_5[2] = bVar19" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[3] = bVar21;" (assignment_expression "param_5[3] = bVar21" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (} "}")) (else_clause "else {\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" (else "else") (compound_statement "{\n                  *param_5 = bVar21;\n                  param_5[1] = bVar19;\n                  param_5[2] = bVar25;\n                  param_5[3] = (byte)uStack_64;\n                }" ({ "{") (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[3] = (byte)uStack_64;" (assignment_expression "param_5[3] = (byte)uStack_64" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_64" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_64"))) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 4;" (assignment_expression "param_5 = param_5 + param_3[9] + 4" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 4" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != (uint)local_fc)" (( "(") (binary_expression "iVar13 != (uint)local_fc" (identifier "iVar13") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (if_statement "if (uVar11 != 0x40) goto code_r0x0015768b;" (if "if") (parenthesized_expression "(uVar11 != 0x40)" (( "(") (binary_expression "uVar11 != 0x40" (identifier "uVar11") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto code_r0x0015768b;" (goto "goto") (statement_identifier "code_r0x0015768b") (; ";"))) (if_statement "if (param_3[2] == 1) {\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" (if "if") (parenthesized_expression "(param_3[2] == 1)" (( "(") (binary_expression "param_3[2] == 1" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }\n          goto LAB_001548a8;\n        }" ({ "{") (if_statement "if (0 < (int)(uint)local_fc) {\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n            dVar3 = *(double *)(param_3 + 0x11);\n            iVar18 = 0;\n            dVar5 = *(double *)(param_3 + 3);\n            uVar11 = param_3[0x10];\n            do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);\n          }" ({ "{") (expression_statement "dVar3 = *(double *)(param_3 + 0x11);" (assignment_expression "dVar3 = *(double *)(param_3 + 0x11)" (identifier "dVar3") (= "=") (pointer_expression "*(double *)(param_3 + 0x11)" (* "*") (cast_expression "(double *)(param_3 + 0x11)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x11)" (( "(") (binary_expression "param_3 + 0x11" (identifier "param_3") (+ "+") (number_literal "0x11")) () ")"))))) (; ";")) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar5 = *(double *)(param_3 + 3);" (assignment_expression "dVar5 = *(double *)(param_3 + 3)" (identifier "dVar5") (= "=") (pointer_expression "*(double *)(param_3 + 3)" (* "*") (cast_expression "(double *)(param_3 + 3)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 3)" (( "(") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar11 = param_3[0x10];" (assignment_expression "uVar11 = param_3[0x10]" (identifier "uVar11") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (do_statement "do {\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            } while (iVar18 != iVar13);" (do "do") (compound_statement "{\n              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }\n              dVar6 = dVar6 * dVar3 + dVar5;\n              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);\n              bVar19 = (byte)((ulonglong)dVar6 >> 8);\n              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);\n              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);\n              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);\n              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);\n              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);\n              if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }\n              iVar18 = iVar18 + 1;\n              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n              param_5 = param_5 + param_3[9] + 8;\n            }" ({ "{") (if_statement "if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }\n              else {\n                dVar6 = 0.0;\n              }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n                dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);\n              }" ({ "{") (expression_statement "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);" (assignment_expression "dVar6 = (double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "dVar6") (= "=") (binary_expression "(double)DAT_0029f710 -\n                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (cast_expression "(double)DAT_0029f710" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_0029f710")) (- "-") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n                dVar6 = 0.0;\n              }" (else "else") (compound_statement "{\n                dVar6 = 0.0;\n              }" ({ "{") (expression_statement "dVar6 = 0.0;" (assignment_expression "dVar6 = 0.0" (identifier "dVar6") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "dVar6 = dVar6 * dVar3 + dVar5;" (assignment_expression "dVar6 = dVar6 * dVar3 + dVar5" (identifier "dVar6") (= "=") (binary_expression "dVar6 * dVar3 + dVar5" (binary_expression "dVar6 * dVar3" (identifier "dVar6") (* "*") (identifier "dVar3")) (+ "+") (identifier "dVar5"))) (; ";")) (expression_statement "bVar25 = (byte)((ulonglong)dVar6 >> 0x28);" (assignment_expression "bVar25 = (byte)((ulonglong)dVar6 >> 0x28)" (identifier "bVar25") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x28)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x28)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x28" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "bVar19 = (byte)((ulonglong)dVar6 >> 8);" (assignment_expression "bVar19 = (byte)((ulonglong)dVar6 >> 8)" (identifier "bVar19") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 8)" (( "(") (binary_expression "(ulonglong)dVar6 >> 8" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar21 = (byte)((ulonglong)dVar6 >> 0x38);" (assignment_expression "bVar21 = (byte)((ulonglong)dVar6 >> 0x38)" (identifier "bVar21") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x38)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x38)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x38" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "bVar22 = (byte)((ulonglong)dVar6 >> 0x20);" (assignment_expression "bVar22 = (byte)((ulonglong)dVar6 >> 0x20)" (identifier "bVar22") (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x20)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x20" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);" (assignment_expression "uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18)" (field_expression "uStack_f4._0_1_" (identifier "uStack_f4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x18)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x18" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);" (assignment_expression "local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30)" (field_expression "local_fc._0_1_" (identifier "local_fc") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x30)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x30)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x30" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);" (assignment_expression "uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10)" (field_expression "uStack_e4._0_1_" (identifier "uStack_e4") (. ".") (field_identifier "_0_1_")) (= "=") (call_expression "(byte)((ulonglong)dVar6 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((ulonglong)dVar6 >> 0x10)" (( "(") (binary_expression "(ulonglong)dVar6 >> 0x10" (cast_expression "(ulonglong)dVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "dVar6")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (if_statement "if (uVar11 == 1) {\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }\n              else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" (if "if") (parenthesized_expression "(uVar11 == 1)" (( "(") (binary_expression "uVar11 == 1" (identifier "uVar11") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *param_5 = SUB81(dVar6,0);\n                param_5[4] = bVar22;\n                param_5[5] = bVar25;\n                param_5[7] = bVar21;\n                param_5[1] = bVar19;\n                param_5[2] = (byte)uStack_e4;\n                param_5[3] = (byte)uStack_f4;\n                param_5[6] = (byte)local_fc;\n              }" ({ "{") (expression_statement "*param_5 = SUB81(dVar6,0);" (assignment_expression "*param_5 = SUB81(dVar6,0)" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = bVar22;" (assignment_expression "param_5[4] = bVar22" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[5] = bVar25;" (assignment_expression "param_5[5] = bVar25" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "param_5[7] = bVar21;" (assignment_expression "param_5[7] = bVar21" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[1] = bVar19;" (assignment_expression "param_5[1] = bVar19" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (expression_statement "param_5[2] = (byte)uStack_e4;" (assignment_expression "param_5[2] = (byte)uStack_e4" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[3] = (byte)uStack_f4;" (assignment_expression "param_5[3] = (byte)uStack_f4" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[6] = (byte)local_fc;" (assignment_expression "param_5[6] = (byte)local_fc" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (} "}")) (else_clause "else {\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" (else "else") (compound_statement "{\n                param_5[2] = bVar25;\n                *param_5 = bVar21;\n                param_5[3] = bVar22;\n                param_5[7] = SUB81(dVar6,0);\n                param_5[4] = (byte)uStack_f4;\n                param_5[1] = (byte)local_fc;\n                param_5[5] = (byte)uStack_e4;\n                param_5[6] = bVar19;\n              }" ({ "{") (expression_statement "param_5[2] = bVar25;" (assignment_expression "param_5[2] = bVar25" (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "bVar25")) (; ";")) (expression_statement "*param_5 = bVar21;" (assignment_expression "*param_5 = bVar21" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_5[3] = bVar22;" (assignment_expression "param_5[3] = bVar22" (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "bVar22")) (; ";")) (expression_statement "param_5[7] = SUB81(dVar6,0);" (assignment_expression "param_5[7] = SUB81(dVar6,0)" (subscript_expression "param_5[7]" (identifier "param_5") ([ "[") (number_literal "7") (] "]")) (= "=") (call_expression "SUB81(dVar6,0)" (identifier "SUB81") (argument_list "(dVar6,0)" (( "(") (identifier "dVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "param_5[4] = (byte)uStack_f4;" (assignment_expression "param_5[4] = (byte)uStack_f4" (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte)uStack_f4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_f4"))) (; ";")) (expression_statement "param_5[1] = (byte)local_fc;" (assignment_expression "param_5[1] = (byte)local_fc" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(byte)local_fc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_fc"))) (; ";")) (expression_statement "param_5[5] = (byte)uStack_e4;" (assignment_expression "param_5[5] = (byte)uStack_e4" (subscript_expression "param_5[5]" (identifier "param_5") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte)uStack_e4" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_e4"))) (; ";")) (expression_statement "param_5[6] = bVar19;" (assignment_expression "param_5[6] = bVar19" (subscript_expression "param_5[6]" (identifier "param_5") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "bVar19")) (; ";")) (} "}")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9] + 8;" (assignment_expression "param_5 = param_5 + param_3[9] + 8" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9] + 8" (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]"))) (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 != iVar13)" (( "(") (binary_expression "iVar18 != iVar13" (identifier "iVar18") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";")) (} "}"))) (labeled_statement "code_r0x00154e80:\n        uVar29 = 0;" (statement_identifier "code_r0x00154e80") (: ":") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (uVar11 < 0x41) {\n          uVar29 = uVar11;\n        }" (if "if") (parenthesized_expression "(uVar11 < 0x41)" (( "(") (binary_expression "uVar11 < 0x41" (identifier "uVar11") (< "<") (number_literal "0x41")) () ")")) (compound_statement "{\n          uVar29 = uVar11;\n        }" ({ "{") (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "bVar19 = (byte)(uVar29 - 1);" (assignment_expression "bVar19 = (byte)(uVar29 - 1)" (identifier "bVar19") (= "=") (call_expression "(byte)(uVar29 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar29 - 1)" (( "(") (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar25 = bVar19 & 0x1f;" (assignment_expression "bVar25 = bVar19 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = 2 << (bVar19 & 0x1f);" (assignment_expression "uVar16 = 2 << (bVar19 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "2 << (bVar19 & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "(bVar19 & 0x1f)" (( "(") (binary_expression "bVar19 & 0x1f" (identifier "bVar19") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;" (assignment_expression "uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25" (identifier "uVar26") (= "=") (binary_expression "0 << bVar25 | 2U >> 0x20 - bVar25" (binary_expression "0 << bVar25" (number_literal "0") (<< "<<") (identifier "bVar25")) (| "|") (binary_expression "2U >> 0x20 - bVar25" (number_literal "2U") (>> ">>") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar29 - 1 & 0x20) != 0) {\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" (if "if") (parenthesized_expression "((uVar29 - 1 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 - 1 & 0x20) != 0" (parenthesized_expression "(uVar29 - 1 & 0x20)" (( "(") (binary_expression "uVar29 - 1 & 0x20" (binary_expression "uVar29 - 1" (identifier "uVar29") (- "-") (number_literal "1")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar17 = 0;\n          uVar26 = uVar16;\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = uVar16;" (assignment_expression "uVar26 = uVar16" (identifier "uVar26") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "iStack_dc = uVar17 - 1;" (assignment_expression "iStack_dc = uVar17 - 1" (identifier "iStack_dc") (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);" (assignment_expression "iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0)" (identifier "iStack_d8") (= "=") (binary_expression "(uVar26 - 1) + (uint)(uVar17 != 0)" (parenthesized_expression "(uVar26 - 1)" (( "(") (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (0 < (int)(uint)local_fc) {\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n        iVar13 = 0;\n        while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }\n      }" ({ "{") (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uStack_f4 = 0;\n          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }\n          uVar29 = uVar11;\n          if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }\n          while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }\n          iVar13 = iVar13 + 1;\n          param_5 = param_5 + param_3[9];\n          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;\n          if (iVar13 == (uint)local_fc) break;\n          uVar11 = *param_3;\n        }" ({ "{") (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)) {\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&\n             (fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x34)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x34" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1)" (( "(") (comma_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),\n             0.0 < fVar1" (assignment_expression "fVar1 = DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "fVar1") (= "=") (binary_expression "DAT_0029f710 -\n                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (identifier "DAT_0029f710") (- "-") (cast_expression "(float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (* "*") (cast_expression "(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)" (( "(") (binary_expression "local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8" (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x38" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (* "*") (number_literal "8"))) () ")"))))))) (, ",") (binary_expression "0.0 < fVar1" (number_literal "0.0") (< "<") (identifier "fVar1"))) () ")"))) () ")")) (compound_statement "{\n            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);\n            if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }\n            uStack_f4 = -1;\n            fVar1 = (fVar8 * fVar1) / DAT_0029f710;\n            if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }\n          }" ({ "{") (expression_statement "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);" (assignment_expression "fVar8 = (float)CONCAT44(iStack_d8,iStack_dc)" (identifier "fVar8") (= "=") (cast_expression "(float)CONCAT44(iStack_d8,iStack_dc)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (call_expression "CONCAT44(iStack_d8,iStack_dc)" (identifier "CONCAT44") (argument_list "(iStack_d8,iStack_dc)" (( "(") (identifier "iStack_d8") (, ",") (identifier "iStack_dc") () ")"))))) (; ";")) (if_statement "if (iStack_d8 < 0) {\n              fVar8 = fVar8 + DAT_0029f714;\n            }" (if "if") (parenthesized_expression "(iStack_d8 < 0)" (( "(") (binary_expression "iStack_d8 < 0" (identifier "iStack_d8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              fVar8 = fVar8 + DAT_0029f714;\n            }" ({ "{") (expression_statement "fVar8 = fVar8 + DAT_0029f714;" (assignment_expression "fVar8 = fVar8 + DAT_0029f714" (identifier "fVar8") (= "=") (binary_expression "fVar8 + DAT_0029f714" (identifier "fVar8") (+ "+") (identifier "DAT_0029f714"))) (; ";")) (} "}"))) (expression_statement "uStack_f4 = -1;" (assignment_expression "uStack_f4 = -1" (identifier "uStack_f4") (= "=") (number_literal "-1")) (; ";")) (expression_statement "fVar1 = (fVar8 * fVar1) / DAT_0029f710;" (assignment_expression "fVar1 = (fVar8 * fVar1) / DAT_0029f710" (identifier "fVar1") (= "=") (binary_expression "(fVar8 * fVar1) / DAT_0029f710" (parenthesized_expression "(fVar8 * fVar1)" (( "(") (binary_expression "fVar8 * fVar1" (identifier "fVar8") (* "*") (identifier "fVar1")) () ")")) (/ "/") (identifier "DAT_0029f710"))) (; ";")) (if_statement "if (fVar1 < DAT_0029f714) {\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" (if "if") (parenthesized_expression "(fVar1 < DAT_0029f714)" (( "(") (binary_expression "fVar1 < DAT_0029f714" (identifier "fVar1") (< "<") (identifier "DAT_0029f714")) () ")")) (compound_statement "{\n              fVar1 = fVar1 + DAT_0029f124;\n              if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }\n            }" ({ "{") (expression_statement "fVar1 = fVar1 + DAT_0029f124;" (assignment_expression "fVar1 = fVar1 + DAT_0029f124" (identifier "fVar1") (= "=") (binary_expression "fVar1 + DAT_0029f124" (identifier "fVar1") (+ "+") (identifier "DAT_0029f124"))) (; ";")) (if_statement "if (DAT_0029f134 <= fVar1) {\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }\n              else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" (if "if") (parenthesized_expression "(DAT_0029f134 <= fVar1)" (( "(") (binary_expression "DAT_0029f134 <= fVar1" (identifier "DAT_0029f134") (<= "<=") (identifier "fVar1")) () ")")) (compound_statement "{\n                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);\n                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));\n              }" ({ "{") (expression_statement "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);" (assignment_expression "iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" (identifier "iStack_60") (= "=") (cast_expression "(int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20)" (( "(") (binary_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20" (cast_expression "(ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(fVar1 - DAT_0029f134)" (identifier "ROUND") (argument_list "(fVar1 - DAT_0029f134)" (( "(") (binary_expression "fVar1 - DAT_0029f134" (identifier "fVar1") (- "-") (identifier "DAT_0029f134")) () ")"))))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));" (assignment_expression "uStack_f4 = CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" (identifier "uStack_f4") (= "=") (call_expression "CONCAT44(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" (identifier "CONCAT44") (argument_list "(iStack_60 + -0x80000000,\n                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134))" (( "(") (binary_expression "iStack_60 + -0x80000000" (identifier "iStack_60") (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(int)(longlong)ROUND(fVar1 - DAT_0029f134)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(longlong)ROUND(fVar1 - DAT_0029f134)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(fVar1 - DAT_0029f134)" (identifier "ROUND") (argument_list "(fVar1 - DAT_0029f134)" (( "(") (binary_expression "fVar1 - DAT_0029f134" (identifier "fVar1") (- "-") (identifier "DAT_0029f134")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" (else "else") (compound_statement "{\n                uStack_f4 = (longlong)ROUND(fVar1);\n              }" ({ "{") (expression_statement "uStack_f4 = (longlong)ROUND(fVar1);" (assignment_expression "uStack_f4 = (longlong)ROUND(fVar1)" (identifier "uStack_f4") (= "=") (cast_expression "(longlong)ROUND(fVar1)" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (call_expression "ROUND(fVar1)" (identifier "ROUND") (argument_list "(fVar1)" (( "(") (identifier "fVar1") () ")"))))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar29 = uVar11;" (assignment_expression "uVar29 = uVar11" (identifier "uVar29") (= "=") (identifier "uVar11")) (; ";")) (if_statement "if (param_3[0x14] == 0) {\n            param_3[0x14] = 8;\n          }" (if "if") (parenthesized_expression "(param_3[0x14] == 0)" (( "(") (binary_expression "param_3[0x14] == 0" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_3[0x14] = 8;\n          }" ({ "{") (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (while_statement "while (0 < (int)uVar29) {\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" (while "while") (parenthesized_expression "(0 < (int)uVar29)" (( "(") (binary_expression "0 < (int)uVar29" (number_literal "0") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n            uVar26 = param_3[0x14];\n            uVar17 = uVar26;\n            if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }\n            uVar29 = uVar11 - uVar17;\n            uVar11 = 0;\n            if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }\n            if (uVar26 == 8) {\n              *param_5 = 0;\n            }\n            uVar26 = uVar26 - uVar17;\n            bVar25 = (byte)uVar11 & 0x1f;\n            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;\n            if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }\n            param_3[0x14] = uVar26;\n            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));\n            if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }\n            *param_5 = *param_5 | bVar25;\n            if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }\n          }" ({ "{") (expression_statement "uVar26 = param_3[0x14];" (assignment_expression "uVar26 = param_3[0x14]" (identifier "uVar26") (= "=") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "uVar17 = uVar26;" (assignment_expression "uVar17 = uVar26" (identifier "uVar17") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar11 <= uVar26) {\n              uVar17 = uVar11;\n            }" (if "if") (parenthesized_expression "(uVar11 <= uVar26)" (( "(") (binary_expression "uVar11 <= uVar26" (identifier "uVar11") (<= "<=") (identifier "uVar26")) () ")")) (compound_statement "{\n              uVar17 = uVar11;\n            }" ({ "{") (expression_statement "uVar17 = uVar11;" (assignment_expression "uVar17 = uVar11" (identifier "uVar17") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "uVar29 = uVar11 - uVar17;" (assignment_expression "uVar29 = uVar11 - uVar17" (identifier "uVar29") (= "=") (binary_expression "uVar11 - uVar17" (identifier "uVar11") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar29) {\n              uVar11 = uVar29;\n            }" (if "if") (parenthesized_expression "(-1 < (int)uVar29)" (( "(") (binary_expression "-1 < (int)uVar29" (number_literal "-1") (< "<") (cast_expression "(int)uVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar29"))) () ")")) (compound_statement "{\n              uVar11 = uVar29;\n            }" ({ "{") (expression_statement "uVar11 = uVar29;" (assignment_expression "uVar11 = uVar29" (identifier "uVar11") (= "=") (identifier "uVar29")) (; ";")) (} "}"))) (if_statement "if (uVar26 == 8) {\n              *param_5 = 0;\n            }" (if "if") (parenthesized_expression "(uVar26 == 8)" (( "(") (binary_expression "uVar26 == 8" (identifier "uVar26") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              *param_5 = 0;\n            }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "uVar26 = uVar26 - uVar17;" (assignment_expression "uVar26 = uVar26 - uVar17" (identifier "uVar26") (= "=") (binary_expression "uVar26 - uVar17" (identifier "uVar26") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "bVar25 = (byte)uVar11 & 0x1f;" (assignment_expression "bVar25 = (byte)uVar11 & 0x1f" (identifier "bVar25") (= "=") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;" (assignment_expression "uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (identifier "uVar16") (= "=") (binary_expression "(uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25" (binary_expression "(uint)uStack_f4 >> bVar25" (cast_expression "(uint)uStack_f4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_f4")) (>> ">>") (identifier "bVar25")) (| "|") (binary_expression "uStack_f4._4_4_ << 0x20 - bVar25" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (<< "<<") (binary_expression "0x20 - bVar25" (number_literal "0x20") (- "-") (identifier "bVar25"))))) (; ";")) (if_statement "if ((uVar11 & 0x20) != 0) {\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" (if "if") (parenthesized_expression "((uVar11 & 0x20) != 0)" (( "(") (binary_expression "(uVar11 & 0x20) != 0" (parenthesized_expression "(uVar11 & 0x20)" (( "(") (binary_expression "uVar11 & 0x20" (identifier "uVar11") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);\n            }" ({ "{") (expression_statement "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);" (assignment_expression "uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (identifier "uVar16") (= "=") (binary_expression "uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f)" (field_expression "uStack_f4._4_4_" (identifier "uStack_f4") (. ".") (field_identifier "_4_4_")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (expression_statement "param_3[0x14] = uVar26;" (assignment_expression "param_3[0x14] = uVar26" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));" (assignment_expression "bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (identifier "bVar25") (= "=") (call_expression "(byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f))" (( "(") (binary_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f)" (parenthesized_expression "(~(-1 << ((byte)uVar17 & 0x1f)) & uVar16)" (( "(") (binary_expression "~(-1 << ((byte)uVar17 & 0x1f)) & uVar16" (unary_expression "~(-1 << ((byte)uVar17 & 0x1f))" (~ "~") (parenthesized_expression "(-1 << ((byte)uVar17 & 0x1f))" (( "(") (binary_expression "-1 << ((byte)uVar17 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)uVar17 & 0x1f)" (( "(") (binary_expression "(byte)uVar17 & 0x1f" (cast_expression "(byte)uVar17" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar17")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (identifier "uVar16")) () ")")) (<< "<<") (parenthesized_expression "((byte)uVar26 & 0x1f)" (( "(") (binary_expression "(byte)uVar26 & 0x1f" (cast_expression "(byte)uVar26" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar26")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((uVar26 & 0x20) != 0) {\n              bVar25 = 0;\n            }" (if "if") (parenthesized_expression "((uVar26 & 0x20) != 0)" (( "(") (binary_expression "(uVar26 & 0x20) != 0" (parenthesized_expression "(uVar26 & 0x20)" (( "(") (binary_expression "uVar26 & 0x20" (identifier "uVar26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar25 = 0;\n            }" ({ "{") (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" (identifier "bVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*param_5 = *param_5 | bVar25;" (assignment_expression "*param_5 = *param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (binary_expression "*param_5 | bVar25" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (| "|") (identifier "bVar25"))) (; ";")) (if_statement "if (uVar26 == 0) {\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_5 = param_5 + 1;\n              param_3[0x14] = 8;\n            }" ({ "{") (expression_statement "param_5 = param_5 + 1;" (assignment_expression "param_5 = param_5 + 1" (identifier "param_5") (= "=") (binary_expression "param_5 + 1" (identifier "param_5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_3[0x14] = 8;" (assignment_expression "param_3[0x14] = 8" (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "8")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_5 = param_5 + param_3[9];" (assignment_expression "param_5 = param_5 + param_3[9]" (identifier "param_5") (= "=") (binary_expression "param_5 + param_3[9]" (identifier "param_5") (+ "+") (subscript_expression "param_3[9]" (identifier "param_3") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;" (assignment_expression "local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (= "=") (binary_expression "local_c4 + *(int *)(param_1 + 0x298) * 8" (identifier "local_c4") (+ "+") (binary_expression "*(int *)(param_1 + 0x298) * 8" (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (* "*") (number_literal "8")))) (; ";")) (if_statement "if (iVar13 == (uint)local_fc) break;" (if "if") (parenthesized_expression "(iVar13 == (uint)local_fc)" (( "(") (binary_expression "iVar13 == (uint)local_fc" (identifier "iVar13") (== "==") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = *param_3;" (assignment_expression "uVar11 = *param_3" (identifier "uVar11") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0x16:\ncode_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_00149950(uVar30,local_c4,param_5,param_6);\n      break;" (case "case") (number_literal "0x16") (: ":") (labeled_statement "code_r0x001560c7:\n      local_fc._0_4_ = (uint)uVar30;" (statement_identifier "code_r0x001560c7") (: ":") (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" (identifier "local_fc") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30"))) (; ";"))) (expression_statement "FUN_00149950(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_00149950(uVar30,local_c4,param_5,param_6)" (identifier "FUN_00149950") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x17:\ncode_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);\n      goto LAB_001548a8;" (case "case") (number_literal "0x17") (: ":") (labeled_statement "code_r0x00154df4:\n      FUN_0014cb30(uVar30,local_c4,param_5,param_6);" (statement_identifier "code_r0x00154df4") (: ":") (expression_statement "FUN_0014cb30(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_0014cb30(uVar30,local_c4,param_5,param_6)" (identifier "FUN_0014cb30") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (case_statement "case 0x19:\ncode_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;\n      FUN_001430e0(uVar30,local_c4,param_5,param_6);" (case "case") (number_literal "0x19") (: ":") (labeled_statement "code_r0x00154a5f:\n      local_fc._0_4_ = (uint)uVar30;" (statement_identifier "code_r0x00154a5f") (: ":") (expression_statement "local_fc._0_4_ = (uint)uVar30;" (assignment_expression "local_fc._0_4_ = (uint)uVar30" (field_expression "local_fc._0_4_" (identifier "local_fc") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar30"))) (; ";"))) (expression_statement "FUN_001430e0(uVar30,local_c4,param_5,param_6);" (call_expression "FUN_001430e0(uVar30,local_c4,param_5,param_6)" (identifier "FUN_001430e0") (argument_list "(uVar30,local_c4,param_5,param_6)" (( "(") (identifier "uVar30") (, ",") (identifier "local_c4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")"))) (; ";"))) (} "}"))) (if_statement "if (1 < uVar11) goto LAB_001548a8;" (if "if") (parenthesized_expression "(1 < uVar11)" (( "(") (binary_expression "1 < uVar11" (number_literal "1") (< "<") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_001548a8;" (goto "goto") (statement_identifier "LAB_001548a8") (; ";"))) (} "}")))) (if_statement "if (param_2 == 0) {\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }\n  else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar13 = GetAuthenticPixelQueue(param_1);\n  }" ({ "{") (expression_statement "iVar13 = GetAuthenticPixelQueue(param_1);" (assignment_expression "iVar13 = GetAuthenticPixelQueue(param_1)" (identifier "iVar13") (= "=") (call_expression "GetAuthenticPixelQueue(param_1)" (identifier "GetAuthenticPixelQueue") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" (else "else") (compound_statement "{\n    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);\n  }" ({ "{") (expression_statement "iVar13 = GetCacheViewAuthenticPixelQueue(param_2);" (assignment_expression "iVar13 = GetCacheViewAuthenticPixelQueue(param_2)" (identifier "iVar13") (= "=") (call_expression "GetCacheViewAuthenticPixelQueue(param_2)" (identifier "GetCacheViewAuthenticPixelQueue") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")))) (if_statement "if (0 < (int)(uint)local_fc) {\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" (if "if") (parenthesized_expression "(0 < (int)(uint)local_fc)" (( "(") (binary_expression "0 < (int)(uint)local_fc" (number_literal "0") (< "<") (cast_expression "(int)(uint)local_fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc")))) () ")")) (compound_statement "{\n    iVar18 = *(int *)(param_1 + 0x298);\n    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);\n    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);\n    iVar24 = 0;\n    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);\n    do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);\n  }" ({ "{") (expression_statement "iVar18 = *(int *)(param_1 + 0x298);" (assignment_expression "iVar18 = *(int *)(param_1 + 0x298)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(param_1 + 0x298)" (* "*") (cast_expression "(int *)(param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 8" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);" (assignment_expression "iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x2a8) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0x2a8) + 0x14" (pointer_expression "*(int *)(param_1 + 0x2a8)" (* "*") (cast_expression "(int *)(param_1 + 0x2a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a8)" (( "(") (binary_expression "param_1 + 0x2a8" (identifier "param_1") (+ "+") (number_literal "0x2a8")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);" (assignment_expression "puVar14 = (undefined8 *)(iVar13 + iVar27 * 8)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)(iVar13 + iVar27 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + iVar27 * 8)" (( "(") (binary_expression "iVar13 + iVar27 * 8" (identifier "iVar13") (+ "+") (binary_expression "iVar27 * 8" (identifier "iVar27") (* "*") (number_literal "8"))) () ")")))) (; ";")) (do_statement "do {\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    } while (iVar24 != (uint)local_fc);" (do "do") (compound_statement "{\n      uVar30 = *puVar14;\n      iVar24 = iVar24 + 1;\n      *puVar14 = puVar14[iVar28 - iVar27];\n      puVar14[iVar28 - iVar27] = uVar30;\n      puVar14 = puVar14 + iVar18;\n    }" ({ "{") (expression_statement "uVar30 = *puVar14;" (assignment_expression "uVar30 = *puVar14" (identifier "uVar30") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar14 = puVar14[iVar28 - iVar27];" (assignment_expression "*puVar14 = puVar14[iVar28 - iVar27]" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (subscript_expression "puVar14[iVar28 - iVar27]" (identifier "puVar14") ([ "[") (binary_expression "iVar28 - iVar27" (identifier "iVar28") (- "-") (identifier "iVar27")) (] "]"))) (; ";")) (expression_statement "puVar14[iVar28 - iVar27] = uVar30;" (assignment_expression "puVar14[iVar28 - iVar27] = uVar30" (subscript_expression "puVar14[iVar28 - iVar27]" (identifier "puVar14") ([ "[") (binary_expression "iVar28 - iVar27" (identifier "iVar28") (- "-") (identifier "iVar27")) (] "]")) (= "=") (identifier "uVar30")) (; ";")) (expression_statement "puVar14 = puVar14 + iVar18;" (assignment_expression "puVar14 = puVar14 + iVar18" (identifier "puVar14") (= "=") (binary_expression "puVar14 + iVar18" (identifier "puVar14") (+ "+") (identifier "iVar18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != (uint)local_fc)" (( "(") (binary_expression "iVar24 != (uint)local_fc" (identifier "iVar24") (!= "!=") (cast_expression "(uint)local_fc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_fc"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001548a8:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\n  }" (statement_identifier "LAB_001548a8") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return local_c0;\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    return local_c0;\n  }" ({ "{") (return_statement "return local_c0;" (return "return") (identifier "local_c0") (; ";")) (} "}")))) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

size_t function_1(type_1 *var_2,type_2 *var_11,type_3 *var_6,
                          type_4 var_9,type_5 *var_7,type_6 *var_38)

{
  float var_57;
  type_7 QVar2;
  type_8 lVar3;
  double var_29;
  double var_31;
  double var_66;
  int var_91;
  type_9 *var_34;
  type_10 var_27;
  size_t var_35;
  size_t var_21;
  type_11 var_46;
  float var_45;
  double var_48;
  type_12 var_41;
  type_13 var_16;
  double *var_36;
  type_7 *var_17;
  type_13 var_68;
  type_13 var_60;
  type_13 var_53;
  int var_20;
  type_14 var_51;
  double *var_33;
  type_14 bVar25;
  type_14 bVar26;
  type_9 *var_32;
  int var_19;
  type_14 var_52;
  type_13 var_54;
  size_t var_37;
  type_13 var_50;
  int var_18;
  int var_1;
  char *pcVar34;
  type_15 local_10c;
  type_15 local_104;
  type_16 local_fc;
  type_16 local_f4;
  type_14 local_ec;
  type_16 local_e4;
  int local_dc;
  int var_56;
  int var_69;
  int local_cc;
  int var_67;
  type_7 *var_43;
  size_t local_c0;
  int local_bc;
  int var_72;
  type_16 local_b4;
  int var_71;
  size_t var_74;
  type_13 var_70;
  int var_59;
  type_7 cbcr [4];
  
  var_91 = *(int *)(var_1 + 0x14);
  if (var_2 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,
                  "ExportQuantumPixels");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,
                  "ExportQuantumPixels");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"MagickCore/quantum-export.c","ExportQuantumPixels",0xf33,"%s",
                   var_2->filename);
  }
  if (var_6 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,
                  "ExportQuantumPixels");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                  0xf35,"ExportQuantumPixels");
  }
  if (var_7 == (type_5 *)0x0) {
    var_7 = var_8(var_6);
  }
  var_16 = var_9 - var_10;
  if (var_11 == (type_2 *)0x0) {
    local_fc = var_12(var_2);
    var_43 = var_13(var_2);
    if (var_6->alpha_type == var_14) {
      var_36 = var_15(var_2);
      goto LAB_001548e3;
    }
LAB_001547f3:
    if (1 < var_16) goto LAB_001547fe;
LAB_00154999:
    var_17 = var_15(var_2);
    if (0 < (int)(type_13)local_fc) {
      var_18 = var_2->channel_map->offset;
      var_20 = var_2->channel_map[1].offset;
      var_21 = var_2->number_channels;
      var_19 = 0;
      var_17 = var_17 + var_18;
      do {
        QVar2 = *var_17;
        var_19 = var_19 + 1;
        *var_17 = var_17[var_20 - var_18];
        var_17[var_20 - var_18] = QVar2;
        var_17 = var_17 + var_21;
      } while (var_19 != (type_13)local_fc);
    }
    var_22(var_6);
    local_c0 = var_23(var_2,var_6,var_9);
    switch(var_9) {
    case AlphaQuantum:
      goto _L4758;
    case BGRAQuantum:
      goto _L4806;
    case BGROQuantum:
      goto _L4807;
    case BGRQuantum:
      goto _L4805;
    case BlackQuantum:
      goto _L4808;
    case BlueQuantum:
    case YellowQuantum:
      goto _L4852;
    case var_10:
    case RGBAQuantum:
      goto _L5114;
    case CbYCrQuantum:
    case RGBQuantum:
      goto _L5113;
    case CbYCrYQuantum:
      goto _L4898;
    case CMYKAQuantum:
      goto _L4896;
    case CMYKOQuantum:
      goto _L4897;
    case CMYKQuantum:
      goto _L4895;
    case CyanQuantum:
    case RedQuantum:
      goto _L5026;
    case GrayAlphaQuantum:
      goto _L4981;
    case GrayQuantum:
      goto _L4980;
    case GreenQuantum:
    case MagentaQuantum:
      goto _L4982;
    case IndexAlphaQuantum:
      goto _L5025;
    case IndexQuantum:
      goto _L5024;
    case OpacityQuantum:
      goto _L5068;
    case RGBOQuantum:
      goto _L5115;
    }
  }
  else {
    local_fc = var_24(var_11);
    var_43 = var_25(var_11);
    if (var_6->alpha_type != var_14) goto LAB_001547f3;
    var_36 = var_26(var_11);
LAB_001548e3:
    var_29 = _DAT_0029f148;
    var_21 = var_2->columns;
    if ((int)var_21 < 1) goto LAB_001547f3;
    var_34 = var_2->channel_map;
    var_27 = var_34[4].traits;
    var_35 = var_2->number_channels;
    var_37 = 0;
    do {
      if (var_27 == var_28) {
        var_31 = 1.0;
      }
      else {
        var_31 = var_36[var_34[4].offset] * var_29;
      }
      var_33 = var_36;
      var_32 = var_34;
      if (0 < (int)var_35) {
        do {
          if ((var_34[var_32->channel].traits & var_30) != var_28) {
            *var_33 = *var_33 * var_31;
          }
          var_32 = var_32 + 1;
          var_33 = var_33 + 1;
        } while (var_32 != var_34 + var_35);
      }
      var_36 = var_36 + var_35;
      var_37 = var_37 + 1;
    } while (var_37 != var_21);
    if (var_16 < 2) goto LAB_00154999;
LAB_001547fe:
    var_22(var_6);
    local_c0 = var_23(var_2,var_6,var_9);
    switch(var_9) {
    default:
      goto _L4734;
    case AlphaQuantum:
_L4758:
      var_31 = DAT_002a8000;
      var_57 = var_83;
      var_29 = _DAT_0029f148;
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportAlphaQuantum";
        var_16 = 0xfb;
LAB_00159158:
                    /* WARNING: Subroutine does not return */
        var_3("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",var_16,
                      pcVar34);
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportAlphaQuantum";
        var_16 = 0xfc;
LAB_00159135:
                    /* WARNING: Subroutine does not return */
        var_3("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                      var_16,pcVar34);
      }
      var_16 = var_6->depth;
      var_18 = (type_13)local_fc;
      if (var_16 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              if (var_2->channel_map[4].traits == var_28) {
                var_57 = 1.0;
              }
              else {
                var_57 = (float)((type_17)var_29 *
                               (type_17)var_43[var_2->channel_map[4].offset]);
              }
              var_41 = var_40(var_57);
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              if (var_2->channel_map[4].traits == var_28) {
LAB_00157b5e:
                var_20 = -1;
                var_52 = 0xff;
              }
              else {
                var_29 = var_43[var_2->channel_map[4].offset];
                if (var_29 <= 0.0) {
                  var_20 = 0;
                  var_52 = 0;
                }
                else {
                  if ((double)var_83 <= var_29) goto LAB_00157b5e;
                  var_20 = (int)var_44(var_29 + (double)var_84);
                  var_52 = (type_14)((type_13)var_20 >> 8);
                }
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        goto _L4734;
      }
      if (var_16 < 0x11) {
        if (var_16 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0xff;
              if (var_2->channel_map[4].traits != var_28) {
                var_52 = 0;
                if (0.0 < var_43[var_2->channel_map[4].offset]) {
                  var_29 = var_43[var_2->channel_map[4].offset] / (double)var_85;
                  if ((double)var_86 <= var_29) {
                    var_52 = 0xff;
                  }
                  else {
                    var_52 = (type_14)(short)var_44(var_29 + (double)var_84);
                  }
                }
              }
              *var_7 = var_52;
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
          goto _L4734;
        }
LAB_00157d50:
        local_dc = 0;
        var_56 = 0;
        if (var_16 != 0) goto LAB_00154c68;
      }
      else {
        if (var_16 == 0x20) {
          if (var_6->format == var_39) {
            if (0 < (int)(type_13)local_fc) {
              var_18 = 0;
              var_29 = (var_6->state).inverse_scale;
              var_31 = var_6->minimum;
              var_46 = var_6->endian;
              do {
                var_45 = var_57;
                if (var_2->channel_map[4].traits != var_28) {
                  var_45 = (float)var_43[var_2->channel_map[4].offset];
                }
                var_45 = var_45 * (float)var_29 + (float)var_31;
                var_52 = (type_14)((type_13)var_45 >> 8);
                bVar25 = (type_14)((type_13)var_45 >> 0x18);
                var_51 = (type_14)((type_13)var_45 >> 0x10);
                if (var_46 == var_42) {
                  *var_7 = var_47(var_45,0);
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = var_47(var_45,0);
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          else {
            var_18 = 0;
            if (0 < (int)(type_13)local_fc) {
              do {
                if (var_2->channel_map[4].traits == var_28) {
LAB_00157c2d:
                  var_70._0_1_ = 0xff;
                  var_52 = 0xff;
                  var_51 = 0xff;
                  bVar25 = 0xff;
                }
                else if (var_43[var_2->channel_map[4].offset] <= 0.0) {
                  var_70._0_1_ = 0;
                  var_52 = 0;
                  var_51 = 0;
                  bVar25 = 0;
                }
                else {
                  var_29 = var_43[var_2->channel_map[4].offset] * (double)DAT_002a7fec;
                  if (var_31 <= var_29) goto LAB_00157c2d;
                  lVar3 = (type_8)var_44(var_29 + (double)var_84);
                  var_70._0_1_ = (type_14)lVar3;
                  var_52 = (type_14)((type_15)lVar3 >> 8);
                  bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                  var_51 = (type_14)((type_15)lVar3 >> 0x10);
                }
                if (var_6->endian == var_42) {
                  *var_7 = (type_14)var_70;
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = (type_14)var_70;
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          goto _L4734;
        }
        if (var_16 != 0x40) goto LAB_00157d50;
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_29 = (var_6->state).inverse_scale;
            var_20 = 0;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            var_66 = (double)var_83;
            do {
              var_48 = var_66;
              if (var_2->channel_map[4].traits != var_28) {
                var_48 = var_43[var_2->channel_map[4].offset];
              }
              var_48 = var_48 * var_29 + var_31;
              var_52 = (type_14)((type_15)var_48 >> 0x28);
              var_51 = (type_14)((type_15)var_48 >> 8);
              bVar25 = (type_14)((type_15)var_48 >> 0x38);
              bVar26 = (type_14)((type_15)var_48 >> 0x20);
              local_fc._0_1_ = (type_14)((type_15)var_48 >> 0x18);
              local_104._0_1_ = (type_14)((type_15)var_48 >> 0x30);
              local_f4._0_1_ = (type_14)((type_15)var_48 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_49(var_48,0);
                var_7[4] = bVar26;
                var_7[5] = var_52;
                var_7[7] = bVar25;
                var_7[1] = var_51;
                var_7[2] = (type_14)local_f4;
                var_7[3] = (type_14)local_fc;
                var_7[6] = (type_14)local_104;
              }
              else {
                var_7[2] = var_52;
                *var_7 = bVar25;
                var_7[3] = bVar26;
                var_7[7] = var_49(var_48,0);
                var_7[4] = (type_14)local_fc;
                var_7[1] = (type_14)local_104;
                var_7[5] = (type_14)local_f4;
                var_7[6] = var_51;
              }
              var_20 = var_20 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 8;
            } while (var_20 != var_18);
          }
          goto _L4734;
        }
LAB_00154c68:
        var_50 = 0;
        if (var_16 < 0x41) {
          var_50 = var_16;
        }
        var_51 = (type_14)(var_50 - 1);
        var_52 = var_51 & 0x1f;
        var_60 = 2 << (var_51 & 0x1f);
        var_53 = var_60;
        var_54 = 0 << var_52 | 2U >> 0x20 - var_52;
        if ((var_50 - 1 & 0x20) != 0) {
          var_53 = 0;
          var_54 = var_60;
        }
        local_dc = var_53 - 1;
        var_56 = (var_54 - 1) + (type_13)(var_53 != 0);
      }
      if (0 < (int)(type_13)local_fc) {
        local_e4._0_4_ = 0;
        do {
          if (var_2->channel_map[4].traits == var_28) {
            var_29 = (double)var_83;
LAB_001566ad:
            var_57 = (float)var_55(var_56,local_dc);
            if (var_56 < 0) {
              var_57 = var_57 + var_58;
            }
            local_f4 = -1;
            var_29 = ((double)var_57 * var_29) / (double)var_83;
            if (var_29 < (double)var_58) {
              var_29 = var_29 + (double)var_84;
              if ((double)var_87 <= var_29) {
                lVar3 = (type_8)var_44(var_29 - (double)var_87);
                var_59 = (int)((type_15)lVar3 >> 0x20);
                local_f4 = var_55(var_59 + -0x80000000,(int)lVar3);
              }
              else {
                local_f4 = (type_8)var_44(var_29);
              }
            }
          }
          else {
            local_f4 = 0;
            var_29 = var_43[var_2->channel_map[4].offset];
            if (0.0 < var_29) goto LAB_001566ad;
          }
          var_50 = var_16;
          if ((var_6->state).bits == 0) {
            (var_6->state).bits = 8;
          }
          while (0 < (int)var_50) {
            var_54 = (var_6->state).bits;
            var_53 = var_54;
            if (var_16 <= var_54) {
              var_53 = var_16;
            }
            var_50 = var_16 - var_53;
            var_16 = 0;
            if (-1 < (int)var_50) {
              var_16 = var_50;
            }
            if (var_54 == 8) {
              *var_7 = 0;
            }
            var_54 = var_54 - var_53;
            var_52 = (type_14)var_16 & 0x1f;
            var_60 = (type_13)local_f4 >> var_52 | local_f4._4_4_ << 0x20 - var_52;
            if ((var_16 & 0x20) != 0) {
              var_60 = local_f4._4_4_ >> ((type_14)var_16 & 0x1f);
            }
            (var_6->state).bits = var_54;
            var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_60) << ((type_14)var_54 & 0x1f));
            if ((var_54 & 0x20) != 0) {
              var_52 = 0;
            }
            *var_7 = *var_7 | var_52;
            if (var_54 == 0) {
              var_7 = var_7 + 1;
              (var_6->state).bits = 8;
            }
          }
          local_e4._0_4_ = (type_13)local_e4 + 1;
          var_7 = var_7 + var_6->pad;
          var_43 = var_43 + var_2->number_channels;
          if ((type_13)local_e4 == (type_13)local_fc) break;
          var_16 = var_6->depth;
        } while( true );
      }
      goto _L4734;
    case BGRAQuantum:
_L4806:
      var_61(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case BGROQuantum:
_L4807:
      var_62(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case BGRQuantum:
_L4805:
      var_63(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case BlackQuantum:
_L4808:
      var_31 = DAT_002a8000;
      var_29 = _DAT_0029f148;
      if (var_2->colorspace != var_64) {
        var_65
                  (var_38,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,ImageError,
                   "ColorSeparatedImageRequired","`%s\'",var_2->filename);
        goto _L4734;
      }
      var_16 = var_6->depth;
      var_18 = (type_13)local_fc;
      if (var_16 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              if (var_2->channel_map[3].traits == var_28) {
                var_57 = 0.0;
              }
              else {
                var_57 = (float)((type_17)var_29 *
                               (type_17)var_43[var_2->channel_map[3].offset]);
              }
              var_41 = var_40(var_57);
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              if ((var_2->channel_map[3].traits == var_28) ||
                 (var_29 = var_43[var_2->channel_map[3].offset], var_29 <= 0.0)) {
                var_20 = 0;
                var_52 = 0;
              }
              else if ((double)var_83 <= var_29) {
                var_20 = -1;
                var_52 = 0xff;
              }
              else {
                var_20 = (int)var_44(var_29 + (double)var_84);
                var_52 = (type_14)((type_13)var_20 >> 8);
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        goto _L4734;
      }
      if (var_16 < 0x11) {
        if (var_16 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0;
              if ((var_2->channel_map[3].traits != var_28) &&
                 (0.0 < var_43[var_2->channel_map[3].offset])) {
                var_29 = var_43[var_2->channel_map[3].offset] / (double)var_85;
                var_52 = 0xff;
                if (var_29 < (double)var_86) {
                  var_52 = (type_14)(short)var_44(var_29 + (double)var_84);
                }
              }
              var_18 = var_18 + 1;
              *var_7 = var_52;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
          goto _L4734;
        }
LAB_00158120:
        local_dc = 0;
        var_56 = 0;
        if (var_16 != 0) goto LAB_001563c0;
      }
      else {
        if (var_16 == 0x20) {
          if (var_6->format == var_39) {
            if (0 < (int)(type_13)local_fc) {
              var_18 = 0;
              var_29 = (var_6->state).inverse_scale;
              var_31 = var_6->minimum;
              var_46 = var_6->endian;
              do {
                if (var_2->channel_map[3].traits == var_28) {
                  var_57 = 0.0;
                }
                else {
                  var_57 = (float)var_43[var_2->channel_map[3].offset];
                }
                var_57 = var_57 * (float)var_29 + (float)var_31;
                var_52 = (type_14)((type_13)var_57 >> 8);
                bVar25 = (type_14)((type_13)var_57 >> 0x18);
                var_51 = (type_14)((type_13)var_57 >> 0x10);
                if (var_46 == var_42) {
                  *var_7 = var_47(var_57,0);
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = var_47(var_57,0);
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          else {
            var_18 = 0;
            if (0 < (int)(type_13)local_fc) {
              do {
                if ((var_2->channel_map[3].traits == var_28) ||
                   (var_43[var_2->channel_map[3].offset] <= 0.0)) {
                  var_70._0_1_ = 0;
                  var_52 = 0;
                  var_51 = 0;
                  bVar25 = 0;
                }
                else {
                  var_29 = var_43[var_2->channel_map[3].offset] * (double)DAT_002a7fec;
                  if (var_31 <= var_29) {
                    var_70._0_1_ = 0xff;
                    var_52 = 0xff;
                    var_51 = 0xff;
                    bVar25 = 0xff;
                  }
                  else {
                    lVar3 = (type_8)var_44(var_29 + (double)var_84);
                    var_70._0_1_ = (type_14)lVar3;
                    var_52 = (type_14)((type_15)lVar3 >> 8);
                    bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                    var_51 = (type_14)((type_15)lVar3 >> 0x10);
                  }
                }
                if (var_6->endian == var_42) {
                  *var_7 = (type_14)var_70;
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = (type_14)var_70;
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          goto _L4734;
        }
        if (var_16 != 0x40) goto LAB_00158120;
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_29 = (var_6->state).inverse_scale;
            var_20 = 0;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            do {
              if (var_2->channel_map[3].traits == var_28) {
                var_66 = 0.0;
              }
              else {
                var_66 = var_43[var_2->channel_map[3].offset];
              }
              var_66 = var_66 * var_29 + var_31;
              var_52 = (type_14)((type_15)var_66 >> 0x28);
              var_51 = (type_14)((type_15)var_66 >> 8);
              bVar25 = (type_14)((type_15)var_66 >> 0x38);
              bVar26 = (type_14)((type_15)var_66 >> 0x20);
              local_fc._0_1_ = (type_14)((type_15)var_66 >> 0x18);
              local_104._0_1_ = (type_14)((type_15)var_66 >> 0x30);
              local_f4._0_1_ = (type_14)((type_15)var_66 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_49(var_66,0);
                var_7[4] = bVar26;
                var_7[5] = var_52;
                var_7[7] = bVar25;
                var_7[1] = var_51;
                var_7[2] = (type_14)local_f4;
                var_7[3] = (type_14)local_fc;
                var_7[6] = (type_14)local_104;
              }
              else {
                var_7[2] = var_52;
                *var_7 = bVar25;
                var_7[3] = bVar26;
                var_7[7] = var_49(var_66,0);
                var_7[4] = (type_14)local_fc;
                var_7[1] = (type_14)local_104;
                var_7[5] = (type_14)local_f4;
                var_7[6] = var_51;
              }
              var_20 = var_20 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 8;
            } while (var_20 != var_18);
          }
          goto _L4734;
        }
LAB_001563c0:
        var_50 = 0;
        if (var_16 < 0x41) {
          var_50 = var_16;
        }
        var_51 = (type_14)(var_50 - 1);
        var_52 = var_51 & 0x1f;
        var_60 = 2 << (var_51 & 0x1f);
        var_53 = var_60;
        var_54 = 0 << var_52 | 2U >> 0x20 - var_52;
        if ((var_50 - 1 & 0x20) != 0) {
          var_53 = 0;
          var_54 = var_60;
        }
        local_dc = var_53 - 1;
        var_56 = (var_54 - 1) + (type_13)(var_53 != 0);
      }
      if (0 < (int)(type_13)local_fc) {
        local_e4._0_4_ = 0;
        while( true ) {
          local_f4 = 0;
          if ((var_2->channel_map[3].traits != var_28) &&
             (0.0 < var_43[var_2->channel_map[3].offset])) {
            var_57 = (float)var_55(var_56,local_dc);
            if (var_56 < 0) {
              var_57 = var_57 + var_58;
            }
            local_f4 = -1;
            var_29 = ((double)var_57 * var_43[var_2->channel_map[3].offset]) / (double)var_83;
            if (var_29 < (double)var_58) {
              var_29 = var_29 + (double)var_84;
              if ((double)var_87 <= var_29) {
                lVar3 = (type_8)var_44(var_29 - (double)var_87);
                var_59 = (int)((type_15)lVar3 >> 0x20);
                local_f4 = var_55(var_59 + -0x80000000,(int)lVar3);
              }
              else {
                local_f4 = (type_8)var_44(var_29);
              }
            }
          }
          var_50 = var_16;
          if ((var_6->state).bits == 0) {
            (var_6->state).bits = 8;
          }
          while (0 < (int)var_50) {
            var_54 = (var_6->state).bits;
            var_53 = var_54;
            if (var_16 <= var_54) {
              var_53 = var_16;
            }
            var_50 = var_16 - var_53;
            var_16 = 0;
            if (-1 < (int)var_50) {
              var_16 = var_50;
            }
            if (var_54 == 8) {
              *var_7 = 0;
            }
            var_54 = var_54 - var_53;
            var_52 = (type_14)var_16 & 0x1f;
            var_60 = (type_13)local_f4 >> var_52 | local_f4._4_4_ << 0x20 - var_52;
            if ((var_16 & 0x20) != 0) {
              var_60 = local_f4._4_4_ >> ((type_14)var_16 & 0x1f);
            }
            (var_6->state).bits = var_54;
            var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_60) << ((type_14)var_54 & 0x1f));
            if ((var_54 & 0x20) != 0) {
              var_52 = 0;
            }
            *var_7 = *var_7 | var_52;
            if (var_54 == 0) {
              var_7 = var_7 + 1;
              (var_6->state).bits = 8;
            }
          }
          local_e4._0_4_ = (type_13)local_e4 + 1;
          var_7 = var_7 + var_6->pad;
          var_43 = var_43 + var_2->number_channels;
          if ((type_13)local_e4 == (type_13)local_fc) break;
          var_16 = var_6->depth;
        }
      }
      goto _L4734;
    case BlueQuantum:
    case YellowQuantum:
_L4852:
      var_31 = DAT_002a8000;
      var_29 = _DAT_0029f148;
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportBlueQuantum";
        var_16 = 0x4e6;
        goto LAB_00159158;
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportBlueQuantum";
        var_16 = 0x4e7;
        goto LAB_00159135;
      }
      var_50 = var_6->depth;
      if (var_50 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_41 = var_40
                                 ((float)((type_17)var_29 *
                                         (type_17)var_43[var_2->channel_map[2].offset]));
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              var_29 = var_43[var_2->channel_map[2].offset];
              if (var_29 <= 0.0) {
                var_20 = 0;
                var_52 = 0;
              }
              else if ((double)var_83 <= var_29) {
                var_20 = -1;
                var_52 = 0xff;
              }
              else {
                var_20 = (int)var_44(var_29 + (double)var_84);
                var_52 = (type_14)((type_13)var_20 >> 8);
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else if (var_50 < 0x11) {
        if (var_50 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0;
              if (0.0 < var_43[var_2->channel_map[2].offset]) {
                var_29 = var_43[var_2->channel_map[2].offset] / (double)var_85;
                var_52 = 0xff;
                if (var_29 < (double)var_86) {
                  var_52 = (type_14)(short)var_44(var_29 + (double)var_84);
                }
              }
              var_18 = var_18 + 1;
              *var_7 = var_52;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
LAB_00157c43:
          local_cc = 0;
          var_67 = 0;
          if (var_50 != 0) {
LAB_00156153:
            var_54 = 0;
            if (var_50 < 0x41) {
              var_54 = var_50;
            }
            var_51 = (type_14)(var_54 - 1);
            var_52 = var_51 & 0x1f;
            var_68 = 2 << (var_51 & 0x1f);
            var_60 = var_68;
            var_53 = 0 << var_52 | 2U >> 0x20 - var_52;
            if ((var_54 - 1 & 0x20) != 0) {
              var_60 = 0;
              var_53 = var_68;
            }
            local_cc = var_60 - 1;
            var_67 = (var_53 - 1) + (type_13)(var_60 != 0);
          }
          if (0 < (int)(type_13)local_fc) {
            var_69 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < var_43[var_2->channel_map[2].offset]) {
                var_57 = (float)var_55(var_67,local_cc);
                if (var_67 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_e4 = -1;
                var_29 = ((double)var_57 * var_43[var_2->channel_map[2].offset]) /
                        (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_e4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (type_8)var_44(var_29);
                  }
                }
              }
              var_54 = var_50;
              if ((var_6->state).bits == 0) {
                (var_6->state).bits = 8;
              }
              while (0 < (int)var_54) {
                var_53 = (var_6->state).bits;
                var_60 = var_53;
                if (var_50 <= var_53) {
                  var_60 = var_50;
                }
                var_54 = var_50 - var_60;
                var_50 = 0;
                if (-1 < (int)var_54) {
                  var_50 = var_54;
                }
                if (var_53 == 8) {
                  *var_7 = 0;
                }
                var_53 = var_53 - var_60;
                (var_6->state).bits = var_53;
                var_52 = (type_14)var_50 & 0x1f;
                var_68 = (type_13)local_e4 >> var_52 | local_e4._4_4_ << 0x20 - var_52;
                if ((var_50 & 0x20) != 0) {
                  var_68 = local_e4._4_4_ >> ((type_14)var_50 & 0x1f);
                }
                var_52 = (type_14)((~(-1 << ((type_14)var_60 & 0x1f)) & var_68) << ((type_14)var_53 & 0x1f));
                if ((var_53 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_53 == 0) {
                  var_7 = var_7 + 1;
                  (var_6->state).bits = 8;
                }
              }
              var_69 = var_69 + 1;
              var_7 = var_7 + var_6->pad;
              var_43 = var_43 + var_2->number_channels;
              if (var_69 == (type_13)local_fc) break;
              var_50 = var_6->depth;
            }
          }
        }
      }
      else if (var_50 == 0x20) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            var_29 = (var_6->state).inverse_scale;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            do {
              var_57 = (float)var_43[var_2->channel_map[2].offset] * (float)var_29 + (float)var_31;
              var_52 = (type_14)((type_13)var_57 >> 8);
              bVar25 = (type_14)((type_13)var_57 >> 0x18);
              var_51 = (type_14)((type_13)var_57 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_47(var_57,0);
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = var_47(var_57,0);
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              if (var_43[var_2->channel_map[2].offset] <= 0.0) {
                var_70._0_1_ = 0;
                var_52 = 0;
                var_51 = 0;
                bVar25 = 0;
              }
              else {
                var_29 = var_43[var_2->channel_map[2].offset] * (double)DAT_002a7fec;
                if (var_31 <= var_29) {
                  var_70._0_1_ = 0xff;
                  var_52 = 0xff;
                  var_51 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (type_8)var_44(var_29 + (double)var_84);
                  var_70._0_1_ = (type_14)lVar3;
                  var_52 = (type_14)((type_15)lVar3 >> 8);
                  bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                  var_51 = (type_14)((type_15)lVar3 >> 0x10);
                }
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_70;
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = (type_14)var_70;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else {
        if (var_50 != 0x40) goto LAB_00157c43;
        if (var_6->format != var_39) goto LAB_00156153;
        if (0 < (int)(type_13)local_fc) {
          var_29 = (var_6->state).inverse_scale;
          var_18 = 0;
          var_31 = var_6->minimum;
          var_46 = var_6->endian;
          do {
            var_66 = var_43[var_2->channel_map[2].offset] * var_29 + var_31;
            var_52 = (type_14)((type_15)var_66 >> 0x28);
            var_51 = (type_14)((type_15)var_66 >> 8);
            bVar25 = (type_14)((type_15)var_66 >> 0x20);
            var_69._0_1_ = (type_14)((type_15)var_66 >> 0x18);
            local_ec = (type_14)((type_15)var_66 >> 0x38);
            local_cc._0_1_ = (type_14)((type_15)var_66 >> 0x10);
            local_e4._0_1_ = (type_14)((type_15)var_66 >> 0x30);
            if (var_46 == var_42) {
              *var_7 = var_49(var_66,0);
              var_7[4] = bVar25;
              var_7[5] = var_52;
              var_7[1] = var_51;
              var_7[2] = (type_14)local_cc;
              var_7[3] = (type_14)var_69;
              var_7[6] = (type_14)local_e4;
              var_7[7] = local_ec;
            }
            else {
              var_7[2] = var_52;
              var_7[3] = bVar25;
              var_7[7] = var_49(var_66,0);
              var_7[4] = (type_14)var_69;
              *var_7 = local_ec;
              var_7[5] = (type_14)local_cc;
              var_7[1] = (type_14)local_e4;
              var_7[6] = var_51;
            }
            var_18 = var_18 + 1;
            var_43 = var_43 + var_2->number_channels;
            var_7 = var_7 + var_6->pad + 8;
          } while (var_18 != (type_13)local_fc);
        }
      }
      break;
    case CbYCrYQuantum:
_L4898:
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportCbYCrYQuantum";
        var_16 = 0x559;
        goto LAB_00159158;
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportCbYCrYQuantum";
        var_16 = 0x55a;
        goto LAB_00159135;
      }
      var_16 = var_6->depth;
      if (var_16 == 10) {
        if ((var_6->pack == var_4) && (0 < (int)(type_13)local_fc)) {
          var_18 = 0;
          do {
            var_20 = 0;
            var_34 = var_2->channel_map;
            do {
              var_16 = (type_13)(var_18 + var_20) % 3;
              if (var_16 == 1) {
                var_70 = (type_13)(type_8)var_44(var_43[var_34[1].offset]);
              }
              else if (var_16 == 2) {
                var_70 = (type_13)(type_8)var_44(var_43[var_34[2].offset]);
              }
              else {
                var_70 = (type_13)(type_8)var_44(var_43[var_34->offset]);
              }
              local_10c = (type_15)var_70;
              cbcr[var_20] = (double)local_10c;
              var_20 = var_20 + 1;
            } while (var_20 != 4);
            var_18 = var_18 + 4;
            var_70 = (type_13)(type_8)var_44(cbcr[0]);
            var_50 = var_70 << 0xc;
            var_70 = (type_13)(type_8)var_44(cbcr[2]);
            var_16 = var_70 * 4;
            var_70 = (type_13)(type_8)var_44(cbcr[1]);
            var_54 = var_70 << 0x16 | var_50 | var_16;
            var_51 = (type_14)(var_54 >> 0x10);
            var_52 = (type_14)var_16;
            local_10c._0_1_ = (type_14)(var_54 >> 0x18);
            local_104._0_1_ = (type_14)(var_54 >> 8);
            if (var_6->endian == var_42) {
              *var_7 = var_52;
              var_7[2] = var_51;
              var_7[1] = (type_14)local_104;
              var_7[3] = (type_14)local_10c;
            }
            else {
              var_7[1] = var_51;
              *var_7 = (type_14)local_10c;
              var_7[3] = var_52;
              var_7[2] = (type_14)local_104;
            }
            var_50 = var_50 | var_16;
            var_21 = var_2->number_channels;
            var_70 = (type_13)(type_8)var_44(cbcr[3]);
            var_16 = var_70 << 0x16 | var_50;
            var_51 = (type_14)(var_16 >> 0x18);
            bVar25 = (type_14)(var_16 >> 0x10);
            local_10c._0_1_ = (type_14)(var_50 >> 8);
            if (var_6->endian == var_42) {
              var_7[4] = var_52;
              var_7[7] = var_51;
              var_7[5] = (type_14)local_10c;
              var_7[6] = bVar25;
            }
            else {
              var_7[4] = var_51;
              var_7[5] = bVar25;
              var_7[7] = var_52;
              var_7[6] = (type_14)local_10c;
            }
            var_43 = var_43 + var_2->number_channels + var_21;
            var_7 = var_7 + var_6->pad + 8;
          } while (var_18 != ((type_13)local_fc - 1 >> 1) * 4 + 4);
        }
      }
      else if (0 < (int)(type_13)local_fc) {
        var_50 = (type_13)local_fc - 1;
        var_71 = 0;
        do {
          var_18 = 0;
          var_34 = var_2->channel_map;
          do {
            var_54 = (type_13)(var_71 + var_18) % 3;
            if (var_54 == 1) {
              var_70 = (type_13)(type_8)var_44(var_43[var_34[1].offset]);
            }
            else if (var_54 == 2) {
              var_70 = (type_13)(type_8)var_44(var_43[var_34[2].offset]);
            }
            else {
              var_70 = (type_13)(type_8)var_44(var_43[var_34->offset]);
            }
            local_104 = (type_15)var_70;
            cbcr[var_18] = (double)local_104;
            var_18 = var_18 + 1;
          } while (var_18 != 4);
          var_71 = var_71 + 4;
          local_bc = 0;
          var_72 = 0;
          if (var_16 != 0) {
            var_54 = 0;
            if (var_16 < 0x41) {
              var_54 = var_16;
            }
            var_51 = (type_14)(var_54 - 1);
            var_52 = var_51 & 0x1f;
            var_68 = 2 << (var_51 & 0x1f);
            var_60 = var_68;
            var_53 = 0 << var_52 | 2U >> 0x20 - var_52;
            if ((var_54 - 1 & 0x20) != 0) {
              var_60 = 0;
              var_53 = var_68;
            }
            local_bc = var_60 - 1;
            var_72 = (var_53 - 1) + (type_13)(var_60 != 0);
          }
          local_b4 = 0;
          if (0.0 < cbcr[1]) {
            var_57 = (float)var_55(var_72,local_bc);
            if (var_72 < 0) {
              var_57 = var_57 + var_58;
            }
            local_b4 = -1;
            var_29 = ((double)var_57 * cbcr[1]) / (double)var_83;
            if (var_29 < (double)var_58) {
              var_29 = var_29 + (double)var_84;
              if ((double)var_87 <= var_29) {
                lVar3 = (type_8)var_44(var_29 - (double)var_87);
                var_59 = (int)((type_15)lVar3 >> 0x20);
                local_b4 = var_55(var_59 + -0x80000000,(int)lVar3);
              }
              else {
                local_b4 = (type_8)var_44(var_29);
              }
            }
          }
          var_54 = (var_6->state).bits;
          if (var_54 == 0) {
            (var_6->state).bits = 8;
            var_54 = 8;
          }
          if ((int)var_16 < 1) {
            if (!var_73(cbcr[0])) goto LAB_00155924;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                var_53 = var_54;
                if (var_16 <= var_54) {
                  var_53 = var_16;
                }
                var_60 = var_16 - var_53;
                var_16 = 0;
                if (-1 < (int)var_60) {
                  var_16 = var_60;
                }
                if (var_54 == 8) {
                  *var_7 = 0;
                }
                var_54 = var_54 - var_53;
                (var_6->state).bits = var_54;
                var_52 = (type_14)var_16 & 0x1f;
                var_68 = (type_13)local_b4 >> var_52 | local_b4._4_4_ << 0x20 - var_52;
                if ((var_16 & 0x20) != 0) {
                  var_68 = local_b4._4_4_ >> ((type_14)var_16 & 0x1f);
                }
                var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
                if ((var_54 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_54 != 0) break;
                var_7 = var_7 + 1;
                (var_6->state).bits = 8;
                var_54 = 8;
                if ((int)var_60 < 1) goto LAB_0015590b;
              }
              var_54 = (var_6->state).bits;
            } while (0 < (int)var_60);
LAB_0015590b:
            var_16 = var_6->depth;
            if (var_73(cbcr[0])) {
              local_b4 = 0;
            }
            else {
LAB_00155924:
              local_b4 = 0;
              if (0.0 < cbcr[0]) {
                var_57 = (float)var_55(var_72,local_bc);
                if (var_72 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_b4 = -1;
                var_29 = ((double)var_57 * cbcr[0]) / (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_b4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (type_8)var_44(var_29);
                  }
                }
              }
            }
            if (var_54 == 0) {
              (var_6->state).bits = 8;
              var_54 = 8;
            }
          }
          if ((int)var_16 < 1) {
            if (!var_73(cbcr[2])) goto LAB_00155aac;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                var_53 = var_54;
                if (var_16 <= var_54) {
                  var_53 = var_16;
                }
                var_60 = var_16 - var_53;
                var_16 = 0;
                if (-1 < (int)var_60) {
                  var_16 = var_60;
                }
                if (var_54 == 8) {
                  *var_7 = 0;
                }
                var_54 = var_54 - var_53;
                (var_6->state).bits = var_54;
                var_52 = (type_14)var_16 & 0x1f;
                var_68 = (type_13)local_b4 >> var_52 | local_b4._4_4_ << 0x20 - var_52;
                if ((var_16 & 0x20) != 0) {
                  var_68 = local_b4._4_4_ >> ((type_14)var_16 & 0x1f);
                }
                var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
                if ((var_54 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_54 != 0) break;
                var_7 = var_7 + 1;
                (var_6->state).bits = 8;
                var_54 = 8;
                if ((int)var_60 < 1) goto LAB_00155a93;
              }
              var_54 = (var_6->state).bits;
            } while (0 < (int)var_60);
LAB_00155a93:
            var_16 = var_6->depth;
            if (var_73(cbcr[2])) {
              local_b4 = 0;
            }
            else {
LAB_00155aac:
              local_b4 = 0;
              if (0.0 < cbcr[2]) {
                var_57 = (float)var_55(var_72,local_bc);
                if (var_72 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_b4 = -1;
                var_29 = ((double)var_57 * cbcr[2]) / (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_b4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (type_8)var_44(var_29);
                  }
                }
              }
            }
            if (var_54 == 0) {
              (var_6->state).bits = 8;
              var_54 = 8;
            }
          }
          if ((int)var_16 < 1) {
            var_74 = var_2->number_channels;
            if (!var_73(cbcr[3])) goto LAB_00155c3d;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                var_53 = var_54;
                if (var_16 <= var_54) {
                  var_53 = var_16;
                }
                var_60 = var_16 - var_53;
                var_16 = 0;
                if (-1 < (int)var_60) {
                  var_16 = var_60;
                }
                if (var_54 == 8) {
                  *var_7 = 0;
                }
                var_54 = var_54 - var_53;
                (var_6->state).bits = var_54;
                var_52 = (type_14)var_16 & 0x1f;
                var_68 = (type_13)local_b4 >> var_52 | local_b4._4_4_ << 0x20 - var_52;
                if ((var_16 & 0x20) != 0) {
                  var_68 = local_b4._4_4_ >> ((type_14)var_16 & 0x1f);
                }
                var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
                if ((var_54 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_54 != 0) break;
                var_7 = var_7 + 1;
                (var_6->state).bits = 8;
                var_54 = 8;
                if ((int)var_60 < 1) goto LAB_00155c13;
              }
              var_54 = (var_6->state).bits;
            } while (0 < (int)var_60);
LAB_00155c13:
            var_74 = var_2->number_channels;
            var_16 = var_6->depth;
            if (var_73(cbcr[3])) {
              local_b4 = 0;
            }
            else {
LAB_00155c3d:
              local_b4 = 0;
              if (0.0 < cbcr[3]) {
                var_57 = (float)var_55(var_72,local_bc);
                if (var_72 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_b4 = -1;
                var_29 = ((double)var_57 * cbcr[3]) / (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_b4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (type_8)var_44(var_29);
                  }
                }
              }
            }
            if (var_54 == 0) {
              (var_6->state).bits = 8;
              var_54 = 8;
            }
          }
          if ((int)var_16 < 1) {
            if (!var_73(cbcr[0])) goto LAB_00155dc3;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                var_53 = var_54;
                if (var_16 <= var_54) {
                  var_53 = var_16;
                }
                var_60 = var_16 - var_53;
                var_16 = 0;
                if (-1 < (int)var_60) {
                  var_16 = var_60;
                }
                if (var_54 == 8) {
                  *var_7 = 0;
                }
                var_54 = var_54 - var_53;
                var_52 = (type_14)var_16 & 0x1f;
                var_68 = (type_13)local_b4 >> var_52 | local_b4._4_4_ << 0x20 - var_52;
                if ((var_16 & 0x20) != 0) {
                  var_68 = local_b4._4_4_ >> ((type_14)var_16 & 0x1f);
                }
                (var_6->state).bits = var_54;
                var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
                if ((var_54 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_54 != 0) break;
                var_7 = var_7 + 1;
                (var_6->state).bits = 8;
                var_54 = 8;
                if ((int)var_60 < 1) goto LAB_00155db1;
              }
              var_54 = (var_6->state).bits;
            } while (0 < (int)var_60);
LAB_00155db1:
            var_16 = var_6->depth;
            if (var_73(cbcr[0])) {
              local_b4 = 0;
            }
            else {
LAB_00155dc3:
              local_b4 = 0;
              if (0.0 < cbcr[0]) {
                var_57 = (float)var_55(var_72,local_bc);
                if (var_72 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_b4 = -1;
                var_29 = ((double)var_57 * cbcr[0]) / (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_b4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_b4 = (type_8)var_44(var_29);
                  }
                }
              }
            }
            if (var_54 == 0) {
              (var_6->state).bits = 8;
              var_54 = 8;
            }
          }
          if ((int)var_16 < 1) {
            if (!var_73(cbcr[2])) goto LAB_00155f45;
            local_fc = 0;
            var_53 = var_16;
          }
          else {
            do {
              while( true ) {
                var_53 = var_54;
                if (var_16 <= var_54) {
                  var_53 = var_16;
                }
                var_60 = var_16 - var_53;
                var_16 = 0;
                if (-1 < (int)var_60) {
                  var_16 = var_60;
                }
                if (var_54 == 8) {
                  *var_7 = 0;
                }
                var_54 = var_54 - var_53;
                (var_6->state).bits = var_54;
                var_52 = (type_14)var_16 & 0x1f;
                var_68 = (type_13)local_b4 >> var_52 | local_b4._4_4_ << 0x20 - var_52;
                if ((var_16 & 0x20) != 0) {
                  var_68 = local_b4._4_4_ >> ((type_14)var_16 & 0x1f);
                }
                var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
                if ((var_54 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_54 != 0) break;
                var_7 = var_7 + 1;
                (var_6->state).bits = 8;
                var_54 = 8;
                if ((int)var_60 < 1) goto LAB_00155f33;
              }
              var_54 = (var_6->state).bits;
            } while (0 < (int)var_60);
LAB_00155f33:
            var_16 = var_6->depth;
            if (var_73(cbcr[2])) {
              local_fc = 0;
            }
            else {
LAB_00155f45:
              local_fc = 0;
              if (0.0 < cbcr[2]) {
                var_57 = (float)var_55(var_72,local_bc);
                if (var_72 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_fc = -1;
                var_29 = ((double)var_57 * cbcr[2]) / (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_fc = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_fc = (type_18)var_44(var_29);
                  }
                }
              }
            }
            var_53 = var_16;
            if (var_54 == 0) {
              (var_6->state).bits = 8;
            }
          }
          while (0 < (int)var_53) {
            var_54 = (var_6->state).bits;
            var_60 = var_54;
            if (var_16 <= var_54) {
              var_60 = var_16;
            }
            var_53 = var_16 - var_60;
            var_16 = 0;
            if (-1 < (int)var_53) {
              var_16 = var_53;
            }
            if (var_54 == 8) {
              *var_7 = 0;
            }
            var_54 = var_54 - var_60;
            (var_6->state).bits = var_54;
            var_52 = (type_14)var_16 & 0x1f;
            var_68 = (type_13)local_fc >> var_52 | local_fc._4_4_ << 0x20 - var_52;
            if ((var_16 & 0x20) != 0) {
              var_68 = local_fc._4_4_ >> ((type_14)var_16 & 0x1f);
            }
            var_52 = (type_14)((~(-1 << ((type_14)var_60 & 0x1f)) & var_68) << ((type_14)var_54 & 0x1f));
            if ((var_54 & 0x20) != 0) {
              var_52 = 0;
            }
            *var_7 = *var_7 | var_52;
            if (var_54 == 0) {
              var_7 = var_7 + 1;
              (var_6->state).bits = 8;
            }
          }
          var_43 = var_43 + var_74 + var_2->number_channels;
          var_7 = var_7 + var_6->pad;
          if (var_71 == (var_50 >> 1) * 4 + 4) break;
          var_16 = var_6->depth;
        } while( true );
      }
      goto _L4734;
    case CMYKAQuantum:
_L4896:
      var_75(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case CMYKOQuantum:
_L4897:
      var_76(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case CMYKQuantum:
_L4895:
      var_77(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case CyanQuantum:
    case RedQuantum:
_L5026:
      var_31 = DAT_002a8000;
      var_29 = _DAT_0029f148;
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportRedQuantum";
        var_16 = 0xbaa;
        goto LAB_00159158;
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportRedQuantum";
        var_16 = 0xbab;
        goto LAB_00159135;
      }
      var_50 = var_6->depth;
      if (var_50 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_41 = var_40
                                 ((float)((type_17)var_29 *
                                         (type_17)var_43[var_2->channel_map->offset]));
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              var_29 = var_43[var_2->channel_map->offset];
              if (var_29 <= 0.0) {
                var_20 = 0;
                var_52 = 0;
              }
              else if ((double)var_83 <= var_29) {
                var_20 = -1;
                var_52 = 0xff;
              }
              else {
                var_20 = (int)var_44(var_29 + (double)var_84);
                var_52 = (type_14)((type_13)var_20 >> 8);
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else if (var_50 < 0x11) {
        if (var_50 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0;
              if (0.0 < var_43[var_2->channel_map->offset]) {
                var_29 = var_43[var_2->channel_map->offset] / (double)var_85;
                var_52 = 0xff;
                if (var_29 < (double)var_86) {
                  var_52 = (type_14)(short)var_44(var_29 + (double)var_84);
                }
              }
              var_18 = var_18 + 1;
              *var_7 = var_52;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
LAB_0015742f:
          local_cc = 0;
          var_67 = 0;
          if (var_50 != 0) {
LAB_0015539d:
            var_54 = 0;
            if (var_50 < 0x41) {
              var_54 = var_50;
            }
            var_51 = (type_14)(var_54 - 1);
            var_52 = var_51 & 0x1f;
            var_68 = 2 << (var_51 & 0x1f);
            var_60 = var_68;
            var_53 = 0 << var_52 | 2U >> 0x20 - var_52;
            if ((var_54 - 1 & 0x20) != 0) {
              var_60 = 0;
              var_53 = var_68;
            }
            local_cc = var_60 - 1;
            var_67 = (var_53 - 1) + (type_13)(var_60 != 0);
          }
          if (0 < (int)(type_13)local_fc) {
            var_69 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < var_43[var_2->channel_map->offset]) {
                var_57 = (float)var_55(var_67,local_cc);
                if (var_67 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_e4 = -1;
                var_29 = ((double)var_57 * var_43[var_2->channel_map->offset]) /
                        (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_e4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (type_8)var_44(var_29);
                  }
                }
              }
              var_54 = var_50;
              if ((var_6->state).bits == 0) {
                (var_6->state).bits = 8;
              }
              while (0 < (int)var_54) {
                var_53 = (var_6->state).bits;
                var_60 = var_53;
                if (var_50 <= var_53) {
                  var_60 = var_50;
                }
                var_54 = var_50 - var_60;
                var_50 = 0;
                if (-1 < (int)var_54) {
                  var_50 = var_54;
                }
                if (var_53 == 8) {
                  *var_7 = 0;
                }
                var_53 = var_53 - var_60;
                var_52 = (type_14)var_50 & 0x1f;
                var_68 = (type_13)local_e4 >> var_52 | local_e4._4_4_ << 0x20 - var_52;
                if ((var_50 & 0x20) != 0) {
                  var_68 = local_e4._4_4_ >> ((type_14)var_50 & 0x1f);
                }
                (var_6->state).bits = var_53;
                var_52 = (type_14)((~(-1 << ((type_14)var_60 & 0x1f)) & var_68) << ((type_14)var_53 & 0x1f));
                if ((var_53 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_53 == 0) {
                  var_7 = var_7 + 1;
                  (var_6->state).bits = 8;
                }
              }
              var_69 = var_69 + 1;
              var_7 = var_7 + var_6->pad;
              var_43 = var_43 + var_2->number_channels;
              if (var_69 == (type_13)local_fc) break;
              var_50 = var_6->depth;
            }
          }
        }
      }
      else if (var_50 == 0x20) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            var_29 = (var_6->state).inverse_scale;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            do {
              var_57 = (float)var_43[var_2->channel_map->offset] * (float)var_29 + (float)var_31;
              var_52 = (type_14)((type_13)var_57 >> 8);
              bVar25 = (type_14)((type_13)var_57 >> 0x18);
              var_51 = (type_14)((type_13)var_57 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_47(var_57,0);
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = var_47(var_57,0);
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              if (var_43[var_2->channel_map->offset] <= 0.0) {
                var_70._0_1_ = 0;
                var_52 = 0;
                var_51 = 0;
                bVar25 = 0;
              }
              else {
                var_29 = var_43[var_2->channel_map->offset] * (double)DAT_002a7fec;
                if (var_31 <= var_29) {
                  var_70._0_1_ = 0xff;
                  var_52 = 0xff;
                  var_51 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (type_8)var_44(var_29 + (double)var_84);
                  var_70._0_1_ = (type_14)lVar3;
                  var_52 = (type_14)((type_15)lVar3 >> 8);
                  bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                  var_51 = (type_14)((type_15)lVar3 >> 0x10);
                }
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_70;
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = (type_14)var_70;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else {
        if (var_50 != 0x40) goto LAB_0015742f;
        if (var_6->format != var_39) goto LAB_0015539d;
        if (0 < (int)(type_13)local_fc) {
          var_29 = (var_6->state).inverse_scale;
          var_18 = 0;
          var_31 = var_6->minimum;
          var_46 = var_6->endian;
          do {
            var_66 = var_43[var_2->channel_map->offset] * var_29 + var_31;
            var_52 = (type_14)((type_15)var_66 >> 0x28);
            var_51 = (type_14)((type_15)var_66 >> 8);
            bVar25 = (type_14)((type_15)var_66 >> 0x20);
            var_69._0_1_ = (type_14)((type_15)var_66 >> 0x18);
            local_ec = (type_14)((type_15)var_66 >> 0x38);
            local_cc._0_1_ = (type_14)((type_15)var_66 >> 0x10);
            local_e4._0_1_ = (type_14)((type_15)var_66 >> 0x30);
            if (var_46 == var_42) {
              *var_7 = var_49(var_66,0);
              var_7[4] = bVar25;
              var_7[5] = var_52;
              var_7[1] = var_51;
              var_7[2] = (type_14)local_cc;
              var_7[3] = (type_14)var_69;
              var_7[6] = (type_14)local_e4;
              var_7[7] = local_ec;
            }
            else {
              var_7[2] = var_52;
              var_7[3] = bVar25;
              var_7[7] = var_49(var_66,0);
              var_7[4] = (type_14)var_69;
              *var_7 = local_ec;
              var_7[5] = (type_14)local_cc;
              var_7[1] = (type_14)local_e4;
              var_7[6] = var_51;
            }
            var_18 = var_18 + 1;
            var_43 = var_43 + var_2->number_channels;
            var_7 = var_7 + var_6->pad + 8;
          } while (var_18 != (type_13)local_fc);
        }
      }
      break;
    case GrayAlphaQuantum:
_L4981:
      var_78(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case GrayQuantum:
_L4980:
      var_79(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case GreenQuantum:
    case MagentaQuantum:
_L4982:
      var_31 = DAT_002a8000;
      var_29 = _DAT_0029f148;
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportGreenQuantum";
        var_16 = 0x96d;
        goto LAB_00159158;
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportGreenQuantum";
        var_16 = 0x96e;
        goto LAB_00159135;
      }
      var_50 = var_6->depth;
      if (var_50 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_41 = var_40
                                 ((float)((type_17)var_29 *
                                         (type_17)var_43[var_2->channel_map[1].offset]));
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              var_29 = var_43[var_2->channel_map[1].offset];
              if (var_29 <= 0.0) {
                var_20 = 0;
                var_52 = 0;
              }
              else if ((double)var_83 <= var_29) {
                var_20 = -1;
                var_52 = 0xff;
              }
              else {
                var_20 = (int)var_44(var_29 + (double)var_84);
                var_52 = (type_14)((type_13)var_20 >> 8);
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else if (var_50 < 0x11) {
        if (var_50 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0;
              if (0.0 < var_43[var_2->channel_map[1].offset]) {
                var_29 = var_43[var_2->channel_map[1].offset] / (double)var_85;
                var_52 = 0xff;
                if (var_29 < (double)var_86) {
                  var_52 = (type_14)(short)var_44(var_29 + (double)var_84);
                }
              }
              var_18 = var_18 + 1;
              *var_7 = var_52;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
LAB_0015755d:
          local_cc = 0;
          var_67 = 0;
          if (var_50 != 0) {
LAB_001550c5:
            var_54 = 0;
            if (var_50 < 0x41) {
              var_54 = var_50;
            }
            var_51 = (type_14)(var_54 - 1);
            var_52 = var_51 & 0x1f;
            var_68 = 2 << (var_51 & 0x1f);
            var_60 = var_68;
            var_53 = 0 << var_52 | 2U >> 0x20 - var_52;
            if ((var_54 - 1 & 0x20) != 0) {
              var_60 = 0;
              var_53 = var_68;
            }
            local_cc = var_60 - 1;
            var_67 = (var_53 - 1) + (type_13)(var_60 != 0);
          }
          if (0 < (int)(type_13)local_fc) {
            var_69 = 0;
            while( true ) {
              local_e4 = 0;
              if (0.0 < var_43[var_2->channel_map[1].offset]) {
                var_57 = (float)var_55(var_67,local_cc);
                if (var_67 < 0) {
                  var_57 = var_57 + var_58;
                }
                local_e4 = -1;
                var_29 = ((double)var_57 * var_43[var_2->channel_map[1].offset]) /
                        (double)var_83;
                if (var_29 < (double)var_58) {
                  var_29 = var_29 + (double)var_84;
                  if ((double)var_87 <= var_29) {
                    lVar3 = (type_8)var_44(var_29 - (double)var_87);
                    var_59 = (int)((type_15)lVar3 >> 0x20);
                    local_e4 = var_55(var_59 + -0x80000000,(int)lVar3);
                  }
                  else {
                    local_e4 = (type_8)var_44(var_29);
                  }
                }
              }
              var_54 = var_50;
              if ((var_6->state).bits == 0) {
                (var_6->state).bits = 8;
              }
              while (0 < (int)var_54) {
                var_53 = (var_6->state).bits;
                var_60 = var_53;
                if (var_50 <= var_53) {
                  var_60 = var_50;
                }
                var_54 = var_50 - var_60;
                var_50 = 0;
                if (-1 < (int)var_54) {
                  var_50 = var_54;
                }
                if (var_53 == 8) {
                  *var_7 = 0;
                }
                var_53 = var_53 - var_60;
                var_52 = (type_14)var_50 & 0x1f;
                var_68 = (type_13)local_e4 >> var_52 | local_e4._4_4_ << 0x20 - var_52;
                if ((var_50 & 0x20) != 0) {
                  var_68 = local_e4._4_4_ >> ((type_14)var_50 & 0x1f);
                }
                (var_6->state).bits = var_53;
                var_52 = (type_14)((~(-1 << ((type_14)var_60 & 0x1f)) & var_68) << ((type_14)var_53 & 0x1f));
                if ((var_53 & 0x20) != 0) {
                  var_52 = 0;
                }
                *var_7 = *var_7 | var_52;
                if (var_53 == 0) {
                  var_7 = var_7 + 1;
                  (var_6->state).bits = 8;
                }
              }
              var_69 = var_69 + 1;
              var_7 = var_7 + var_6->pad;
              var_43 = var_43 + var_2->number_channels;
              if (var_69 == (type_13)local_fc) break;
              var_50 = var_6->depth;
            }
          }
        }
      }
      else if (var_50 == 0x20) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            var_29 = (var_6->state).inverse_scale;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            do {
              var_57 = (float)var_43[var_2->channel_map[1].offset] * (float)var_29 + (float)var_31;
              var_52 = (type_14)((type_13)var_57 >> 8);
              bVar25 = (type_14)((type_13)var_57 >> 0x18);
              var_51 = (type_14)((type_13)var_57 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_47(var_57,0);
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = var_47(var_57,0);
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              if (var_43[var_2->channel_map[1].offset] <= 0.0) {
                var_70._0_1_ = 0;
                var_52 = 0;
                var_51 = 0;
                bVar25 = 0;
              }
              else {
                var_29 = var_43[var_2->channel_map[1].offset] * (double)DAT_002a7fec;
                if (var_31 <= var_29) {
                  var_70._0_1_ = 0xff;
                  var_52 = 0xff;
                  var_51 = 0xff;
                  bVar25 = 0xff;
                }
                else {
                  lVar3 = (type_8)var_44(var_29 + (double)var_84);
                  var_70._0_1_ = (type_14)lVar3;
                  var_52 = (type_14)((type_15)lVar3 >> 8);
                  bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                  var_51 = (type_14)((type_15)lVar3 >> 0x10);
                }
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_70;
                var_7[1] = var_52;
                var_7[2] = var_51;
                var_7[3] = bVar25;
              }
              else {
                *var_7 = bVar25;
                var_7[1] = var_51;
                var_7[2] = var_52;
                var_7[3] = (type_14)var_70;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 4;
            } while (var_18 != (type_13)local_fc);
          }
        }
      }
      else {
        if (var_50 != 0x40) goto LAB_0015755d;
        if (var_6->format != var_39) goto LAB_001550c5;
        if (0 < (int)(type_13)local_fc) {
          var_29 = (var_6->state).inverse_scale;
          var_18 = 0;
          var_31 = var_6->minimum;
          var_46 = var_6->endian;
          do {
            var_66 = var_43[var_2->channel_map[1].offset] * var_29 + var_31;
            var_52 = (type_14)((type_15)var_66 >> 0x28);
            var_51 = (type_14)((type_15)var_66 >> 8);
            bVar25 = (type_14)((type_15)var_66 >> 0x20);
            var_69._0_1_ = (type_14)((type_15)var_66 >> 0x18);
            local_ec = (type_14)((type_15)var_66 >> 0x38);
            local_cc._0_1_ = (type_14)((type_15)var_66 >> 0x10);
            local_e4._0_1_ = (type_14)((type_15)var_66 >> 0x30);
            if (var_46 == var_42) {
              *var_7 = var_49(var_66,0);
              var_7[4] = bVar25;
              var_7[5] = var_52;
              var_7[1] = var_51;
              var_7[2] = (type_14)local_cc;
              var_7[3] = (type_14)var_69;
              var_7[6] = (type_14)local_e4;
              var_7[7] = local_ec;
            }
            else {
              var_7[2] = var_52;
              var_7[3] = bVar25;
              var_7[7] = var_49(var_66,0);
              var_7[4] = (type_14)var_69;
              *var_7 = local_ec;
              var_7[5] = (type_14)local_cc;
              var_7[1] = (type_14)local_e4;
              var_7[6] = var_51;
            }
            var_18 = var_18 + 1;
            var_43 = var_43 + var_2->number_channels;
            var_7 = var_7 + var_6->pad + 8;
          } while (var_18 != (type_13)local_fc);
        }
      }
      break;
    case IndexAlphaQuantum:
_L5025:
      var_80(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case IndexQuantum:
_L5024:
      var_81(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case OpacityQuantum:
_L5068:
      var_31 = DAT_002a8000;
      var_29 = _DAT_0029f148;
      if (var_38 == (type_6 *)0x0) {
        pcVar34 = "ExportOpacityQuantum";
        var_16 = 0xb41;
        goto LAB_00159158;
      }
      if (var_38->signature != 0xabacadab) {
        pcVar34 = "ExportOpacityQuantum";
        var_16 = 0xb42;
        goto LAB_00159135;
      }
      var_16 = var_6->depth;
      var_18 = (type_13)local_fc;
      if (var_16 == 0x10) {
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_57 = 0.0;
              if (var_2->channel_map[4].traits == var_82) {
                var_57 = (var_83 - (float)var_43[var_2->channel_map[4].offset]) *
                        (float)var_29;
              }
              var_41 = var_40(var_57);
              var_52 = (type_14)(var_41 >> 8);
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_41;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_41;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        else {
          var_18 = 0;
          if (0 < (int)(type_13)local_fc) {
            do {
              var_20 = 0;
              var_52 = 0;
              if ((var_2->channel_map[4].traits == var_82) &&
                 (var_57 = var_83 - (float)var_43[var_2->channel_map[4].offset], 0.0 < var_57)
                 ) {
                if (var_83 <= var_57) {
                  var_20 = -1;
                  var_52 = 0xff;
                }
                else {
                  var_20 = (int)var_44(var_57 + var_84);
                  var_52 = (type_14)((type_13)var_20 >> 8);
                }
              }
              if (var_6->endian == var_42) {
                *var_7 = (type_14)var_20;
                var_7[1] = var_52;
              }
              else {
                *var_7 = var_52;
                var_7[1] = (type_14)var_20;
              }
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 2;
            } while (var_18 != (type_13)local_fc);
          }
        }
        goto _L4734;
      }
      if (var_16 < 0x11) {
        if (var_16 == 8) {
          if (0 < (int)(type_13)local_fc) {
            var_18 = 0;
            do {
              var_52 = 0;
              if ((var_2->channel_map[4].traits == var_82) &&
                 (0.0 < var_83 - (float)var_43[var_2->channel_map[4].offset])) {
                var_57 = (var_83 - (float)var_43[var_2->channel_map[4].offset]) /
                        var_85;
                var_52 = 0xff;
                if (var_57 < var_86) {
                  var_52 = (type_14)(short)var_44(var_57 + var_84);
                }
              }
              *var_7 = var_52;
              var_18 = var_18 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 1;
            } while (var_18 != (type_13)local_fc);
          }
          goto _L4734;
        }
LAB_0015768b:
        local_dc = 0;
        var_56 = 0;
        if (var_16 != 0) goto LAB_00154e80;
      }
      else {
        if (var_16 == 0x20) {
          if (var_6->format == var_39) {
            if (0 < (int)(type_13)local_fc) {
              var_18 = 0;
              var_29 = (var_6->state).inverse_scale;
              var_31 = var_6->minimum;
              var_46 = var_6->endian;
              do {
                if (var_2->channel_map[4].traits == var_82) {
                  var_57 = var_83 - (float)var_43[var_2->channel_map[4].offset];
                }
                else {
                  var_57 = 0.0;
                }
                var_57 = var_57 * (float)var_29 + (float)var_31;
                var_52 = (type_14)((type_13)var_57 >> 8);
                bVar25 = (type_14)((type_13)var_57 >> 0x18);
                var_51 = (type_14)((type_13)var_57 >> 0x10);
                if (var_46 == var_42) {
                  *var_7 = var_47(var_57,0);
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = var_47(var_57,0);
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          else {
            var_18 = 0;
            if (0 < (int)(type_13)local_fc) {
              do {
                if ((var_2->channel_map[4].traits != var_82) ||
                   ((double)var_83 - var_43[var_2->channel_map[4].offset] <= 0.0)) {
                  var_70._0_1_ = 0;
                  var_52 = 0;
                  var_51 = 0;
                  bVar25 = 0;
                }
                else {
                  var_29 = ((double)var_83 - var_43[var_2->channel_map[4].offset]) *
                          (double)DAT_002a7fec;
                  if (var_31 <= var_29) {
                    var_70._0_1_ = 0xff;
                    var_52 = 0xff;
                    var_51 = 0xff;
                    bVar25 = 0xff;
                  }
                  else {
                    lVar3 = (type_8)var_44(var_29 + (double)var_84);
                    var_70._0_1_ = (type_14)lVar3;
                    var_52 = (type_14)((type_15)lVar3 >> 8);
                    bVar25 = (type_14)((type_15)lVar3 >> 0x18);
                    var_51 = (type_14)((type_15)lVar3 >> 0x10);
                  }
                }
                if (var_6->endian == var_42) {
                  *var_7 = (type_14)var_70;
                  var_7[1] = var_52;
                  var_7[2] = var_51;
                  var_7[3] = bVar25;
                }
                else {
                  *var_7 = bVar25;
                  var_7[1] = var_51;
                  var_7[2] = var_52;
                  var_7[3] = (type_14)var_70;
                }
                var_18 = var_18 + 1;
                var_43 = var_43 + var_2->number_channels;
                var_7 = var_7 + var_6->pad + 4;
              } while (var_18 != (type_13)local_fc);
            }
          }
          goto _L4734;
        }
        if (var_16 != 0x40) goto LAB_0015768b;
        if (var_6->format == var_39) {
          if (0 < (int)(type_13)local_fc) {
            var_29 = (var_6->state).inverse_scale;
            var_20 = 0;
            var_31 = var_6->minimum;
            var_46 = var_6->endian;
            do {
              if (var_2->channel_map[4].traits == var_82) {
                var_66 = (double)var_83 - var_43[var_2->channel_map[4].offset];
              }
              else {
                var_66 = 0.0;
              }
              var_66 = var_66 * var_29 + var_31;
              var_52 = (type_14)((type_15)var_66 >> 0x28);
              var_51 = (type_14)((type_15)var_66 >> 8);
              bVar25 = (type_14)((type_15)var_66 >> 0x38);
              bVar26 = (type_14)((type_15)var_66 >> 0x20);
              local_f4._0_1_ = (type_14)((type_15)var_66 >> 0x18);
              local_fc._0_1_ = (type_14)((type_15)var_66 >> 0x30);
              local_e4._0_1_ = (type_14)((type_15)var_66 >> 0x10);
              if (var_46 == var_42) {
                *var_7 = var_49(var_66,0);
                var_7[4] = bVar26;
                var_7[5] = var_52;
                var_7[7] = bVar25;
                var_7[1] = var_51;
                var_7[2] = (type_14)local_e4;
                var_7[3] = (type_14)local_f4;
                var_7[6] = (type_14)local_fc;
              }
              else {
                var_7[2] = var_52;
                *var_7 = bVar25;
                var_7[3] = bVar26;
                var_7[7] = var_49(var_66,0);
                var_7[4] = (type_14)local_f4;
                var_7[1] = (type_14)local_fc;
                var_7[5] = (type_14)local_e4;
                var_7[6] = var_51;
              }
              var_20 = var_20 + 1;
              var_43 = var_43 + var_2->number_channels;
              var_7 = var_7 + var_6->pad + 8;
            } while (var_20 != var_18);
          }
          goto _L4734;
        }
LAB_00154e80:
        var_50 = 0;
        if (var_16 < 0x41) {
          var_50 = var_16;
        }
        var_51 = (type_14)(var_50 - 1);
        var_52 = var_51 & 0x1f;
        var_60 = 2 << (var_51 & 0x1f);
        var_53 = var_60;
        var_54 = 0 << var_52 | 2U >> 0x20 - var_52;
        if ((var_50 - 1 & 0x20) != 0) {
          var_53 = 0;
          var_54 = var_60;
        }
        local_dc = var_53 - 1;
        var_56 = (var_54 - 1) + (type_13)(var_53 != 0);
      }
      if (0 < (int)(type_13)local_fc) {
        var_18 = 0;
        while( true ) {
          local_f4 = 0;
          if ((var_2->channel_map[4].traits == var_82) &&
             (0.0 < var_83 - (float)var_43[var_2->channel_map[4].offset])) {
            var_57 = (float)var_55(var_56,local_dc);
            if (var_56 < 0) {
              var_57 = var_57 + var_58;
            }
            local_f4 = -1;
            var_57 = (var_57 * (var_83 - (float)var_43[var_2->channel_map[4].offset])) /
                    var_83;
            if (var_57 < var_58) {
              var_57 = var_57 + var_84;
              if (var_87 <= var_57) {
                var_59 = (int)((type_15)(type_8)var_44(var_57 - var_87) >> 0x20);
                local_f4 = var_55(var_59 + -0x80000000,
                                    (int)(type_8)var_44(var_57 - var_87));
              }
              else {
                local_f4 = (type_8)var_44(var_57);
              }
            }
          }
          var_50 = var_16;
          if ((var_6->state).bits == 0) {
            (var_6->state).bits = 8;
          }
          while (0 < (int)var_50) {
            var_54 = (var_6->state).bits;
            var_53 = var_54;
            if (var_16 <= var_54) {
              var_53 = var_16;
            }
            var_50 = var_16 - var_53;
            var_16 = 0;
            if (-1 < (int)var_50) {
              var_16 = var_50;
            }
            if (var_54 == 8) {
              *var_7 = 0;
            }
            var_54 = var_54 - var_53;
            var_52 = (type_14)var_16 & 0x1f;
            var_60 = (type_13)local_f4 >> var_52 | local_f4._4_4_ << 0x20 - var_52;
            if ((var_16 & 0x20) != 0) {
              var_60 = local_f4._4_4_ >> ((type_14)var_16 & 0x1f);
            }
            (var_6->state).bits = var_54;
            var_52 = (type_14)((~(-1 << ((type_14)var_53 & 0x1f)) & var_60) << ((type_14)var_54 & 0x1f));
            if ((var_54 & 0x20) != 0) {
              var_52 = 0;
            }
            *var_7 = *var_7 | var_52;
            if (var_54 == 0) {
              var_7 = var_7 + 1;
              (var_6->state).bits = 8;
            }
          }
          var_18 = var_18 + 1;
          var_7 = var_7 + var_6->pad;
          var_43 = var_43 + var_2->number_channels;
          if (var_18 == (type_13)local_fc) break;
          var_16 = var_6->depth;
        }
      }
      goto _L4734;
    case RGBAQuantum:
_L5114:
      var_88(var_2,var_6,local_fc,var_43,var_7,var_38);
      break;
    case RGBOQuantum:
_L5115:
      var_89(var_2,var_6,local_fc,var_43,var_7,var_38);
      goto _L4734;
    case RGBQuantum:
_L5113:
      var_90(var_2,var_6,local_fc,var_43,var_7,var_38);
    }
    if (1 < var_16) goto _L4734;
  }
  if (var_11 == (type_2 *)0x0) {
    var_17 = var_15(var_2);
  }
  else {
    var_17 = var_26(var_11);
  }
  if (0 < (int)(type_13)local_fc) {
    var_21 = var_2->number_channels;
    var_18 = var_2->channel_map->offset;
    var_20 = var_2->channel_map[1].offset;
    var_19 = 0;
    var_17 = var_17 + var_18;
    do {
      QVar2 = *var_17;
      var_19 = var_19 + 1;
      *var_17 = var_17[var_20 - var_18];
      var_17[var_20 - var_18] = QVar2;
      var_17 = var_17 + var_21;
    } while (var_19 != (type_13)local_fc);
  }
_L4734:
  if (var_91 == *(int *)(var_1 + 0x14)) {
    return local_c0;
  }
                    /* WARNING: Subroutine does not return */
  var_92();
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4
MASKED(int param_1,int param_2,uint *param_3,int param_4,byte *param_5,int param_6)

{
  float fVar1;
  undefined8 uVar2;
  double dVar3;
  longlong lVar4;
  double dVar5;
  double dVar6;
  int *piVar7;
  float fVar8;
  double dVar9;
  undefined2 uVar10;
  uint uVar11;
  double *pdVar12;
  int iVar13;
  undefined8 *puVar14;
  uint uVar15;
  uint uVar16;
  uint uVar17;
  int iVar18;
  byte bVar19;
  double *pdVar20;
  byte bVar21;
  byte bVar22;
  int *piVar23;
  int iVar24;
  byte bVar25;
  uint uVar26;
  int iVar27;
  int iVar28;
  uint uVar29;
  int in_GS_OFFSET;
  undefined8 uVar30;
  char *pcVar31;
  ulonglong local_10c;
  ulonglong local_104;
  undefined8 local_fc;
  undefined8 uStack_f4;
  byte bStack_ec;
  undefined8 uStack_e4;
  int iStack_dc;
  int iStack_d8;
  int iStack_d4;
  int iStack_cc;
  int iStack_c8;
  int local_c4;
  undefined4 local_c0;
  int local_bc;
  int iStack_b8;
  undefined8 local_b4;
  int local_a8;
  int local_74;
  uint uStack_64;
  int iStack_60;
  double adStack_44 [4];
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/quantum-export.c",0xf30,
                  "MASKED");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/quantum-export.c",0xf31,
                  "MASKED");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/quantum-export.c","MASKED",0xf33,&DAT_002b6e4e,
                   param_1 + 0x318);
  }
  if (param_3 == (uint *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info != (QuantumInfo *) NULL","MagickCore/quantum-export.c",0xf34,
                  "MASKED");
  }
  if (param_3[0x17] != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("quantum_info->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                  0xf35,"MASKED");
  }
  if (param_5 == (byte *)0x0) {
    param_5 = (byte *)GetQuantumPixels(param_3);
  }
  uVar11 = param_4 - 7;
  if (param_2 == 0) {
    uVar30 = GetImageExtent(param_1);
    local_c4 = GetVirtualPixelQueue(param_1);
    if (param_3[0xc] == 1) {
      pdVar12 = (double *)GetAuthenticPixelQueue(param_1);
      goto LAB_001548e3;
    }
LAB_001547f3:
    if (1 < uVar11) goto LAB_001547fe;
LAB_00154999:
    local_fc._0_4_ = (uint)uVar30;
    iVar13 = GetAuthenticPixelQueue(param_1);
    if (0 < (int)(uint)local_fc) {
      iVar18 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);
      iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);
      iVar28 = *(int *)(param_1 + 0x298);
      iVar24 = 0;
      puVar14 = (undefined8 *)(iVar13 + iVar18 * 8);
      do {
        uVar2 = *puVar14;
        iVar24 = iVar24 + 1;
        *puVar14 = puVar14[iVar27 - iVar18];
        puVar14[iVar27 - iVar18] = uVar2;
        puVar14 = puVar14 + iVar28;
      } while (iVar24 != (uint)local_fc);
    }
    FUN_00135560(param_3);
    local_c0 = GetQuantumExtent(param_1,param_3,param_4);
    switch(param_4) {
    case 1:
      goto code_r0x00154c08;
    case 2:
      goto code_r0x00156619;
    case 3:
      goto code_r0x001565ed;
    case 4:
      goto code_r0x00154848;
    case 5:
      goto code_r0x00156375;
    case 6:
    case 0x1a:
      goto code_r0x001560f3;
    case 7:
    case 0x16:
      goto code_r0x001560c7;
    case 8:
    case 0x19:
      goto code_r0x00154a5f;
    case 9:
      goto code_r0x00155641;
    case 10:
      goto code_r0x00155615;
    case 0xb:
      goto code_r0x001555e9;
    case 0xc:
      goto code_r0x001555bd;
    case 0xd:
    case 0x15:
      goto code_r0x0015533d;
    case 0xe:
      goto code_r0x00155311;
    case 0xf:
      goto code_r0x001552e5;
    case 0x10:
    case 0x13:
      goto code_r0x00155065;
    case 0x11:
      goto code_r0x00155039;
    case 0x12:
      goto code_r0x0015500d;
    case 0x14:
      goto code_r0x00154e20;
    case 0x17:
      goto code_r0x00154df4;
    }
  }
  else {
    uVar30 = GetCacheViewExtent(param_2);
    local_c4 = GetCacheViewVirtualPixelQueue(param_2);
    if (param_3[0xc] != 1) goto LAB_001547f3;
    pdVar12 = (double *)GetCacheViewAuthenticPixelQueue(param_2);
LAB_001548e3:
    dVar3 = _DAT_0029f148;
    iVar13 = *(int *)(param_1 + 0x18);
    if (iVar13 < 1) goto LAB_001547f3;
    piVar7 = *(int **)(param_1 + 0x2a8);
    iVar18 = piVar7[0xd];
    iVar27 = *(int *)(param_1 + 0x298);
    iVar28 = 0;
    do {
      if (iVar18 == 0) {
        dVar5 = 1.0;
      }
      else {
        dVar5 = pdVar12[piVar7[0xe]] * dVar3;
      }
      pdVar20 = pdVar12;
      piVar23 = piVar7;
      if (0 < iVar27) {
        do {
          if ((*(byte *)(piVar7 + *piVar23 * 3 + 1) & 2) != 0) {
            *pdVar20 = *pdVar20 * dVar5;
          }
          piVar23 = piVar23 + 3;
          pdVar20 = pdVar20 + 1;
        } while (piVar23 != piVar7 + iVar27 * 3);
      }
      pdVar12 = pdVar12 + iVar27;
      iVar28 = iVar28 + 1;
    } while (iVar28 != iVar13);
    if (uVar11 < 2) goto LAB_00154999;
LAB_001547fe:
    local_fc._0_4_ = (uint)uVar30;
    FUN_00135560(param_3);
    local_c0 = GetQuantumExtent(param_1,param_3,param_4);
    switch(param_4) {
    default:
      goto LAB_001548a8;
    case 1:
code_r0x00154c08:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      fVar1 = DAT_0029f710;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportAlphaQuantum";
        uVar11 = 0xfb;
code_r0x00159158:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception != (ExceptionInfo *) NULL","MagickCore/quantum-export.c",uVar11,
                      pcVar31);
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportAlphaQuantum";
        uVar11 = 0xfc;
code_r0x00159135:
                    /* WARNING: Subroutine does not return */
        __assert_fail("exception->signature == MagickCoreSignature","MagickCore/quantum-export.c",
                      uVar11,pcVar31);
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
                fVar1 = 1.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar3 *
                               (longdouble)
                               *(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8));
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
code_r0x00157b5e:
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                if (dVar3 <= 0.0) {
                  iVar18 = 0;
                  bVar25 = 0;
                }
                else {
                  if ((double)DAT_0029f710 <= dVar3) goto code_r0x00157b5e;
                  iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                  bVar25 = (byte)((uint)iVar18 >> 8);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0xff;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                bVar25 = 0;
                if (0.0 < dVar3) {
                  dVar3 = dVar3 / (double)DAT_002a7ff0;
                  if ((double)DAT_002a7ff4 <= dVar3) {
                    bVar25 = 0xff;
                  }
                  else {
                    bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                  }
                }
              }
              *param_5 = bVar25;
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x00157d50:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x00154c68;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                fVar8 = fVar1;
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                  fVar8 = (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                }
                fVar8 = fVar8 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar8 >> 8);
                bVar21 = (byte)((uint)fVar8 >> 0x18);
                bVar19 = (byte)((uint)fVar8 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar8,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar8,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
code_r0x00157c2d:
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                  if (dVar3 <= 0.0) {
                    uStack_64._0_1_ = 0;
                    bVar25 = 0;
                    bVar19 = 0;
                    bVar21 = 0;
                  }
                  else {
                    dVar3 = dVar3 * (double)DAT_002a7fec;
                    if (dVar5 <= dVar3) goto code_r0x00157c2d;
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x00157d50;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            dVar6 = (double)DAT_0029f710;
            do {
              dVar9 = dVar6;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 0) {
                dVar9 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
              }
              dVar9 = dVar9 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar9 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar9 >> 8);
              bVar21 = (byte)((ulonglong)dVar9 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar9 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar9 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar9 >> 0x30);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar9 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar9,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_f4;
                param_5[3] = (byte)local_fc;
                param_5[6] = (byte)local_104;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar9,0);
                param_5[4] = (byte)local_fc;
                param_5[1] = (byte)local_104;
                param_5[5] = (byte)uStack_f4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x00154c68:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        uStack_e4._0_4_ = 0;
        do {
          if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 0) {
            dVar3 = (double)DAT_0029f710;
code_r0x001566ad:
            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            uStack_f4 = -1;
            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                uStack_f4 = (longlong)ROUND(dVar3);
              }
            }
          }
          else {
            uStack_f4 = 0;
            dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
            if (0.0 < dVar3) goto code_r0x001566ad;
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          uStack_e4._0_4_ = (uint)uStack_e4 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if ((uint)uStack_e4 == (uint)local_fc) break;
          uVar11 = *param_3;
        } while( true );
      }
      goto LAB_001548a8;
    case 2:
code_r0x00156619:
      FUN_00146770(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 3:
code_r0x001565ed:
      FUN_0014fd90(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 4:
code_r0x00154848:
      FUN_0013fa50(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 5:
code_r0x00156375:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (*(int *)(param_1 + 4) != 2) {
        ThrowMagickException
                  (param_6,"MagickCore/quantum-export.c","ExportBlackQuantum",0x47b,0x1d1,
                   "ColorSeparatedImageRequired","`%s\'",param_1 + 0x318);
        goto LAB_001548a8;
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                fVar1 = 0.0;
              }
              else {
                fVar1 = (float)((longdouble)dVar3 *
                               (longdouble)
                               *(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8));
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                 dVar3 <= 0.0)) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
                 (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                 0.0 < dVar3)) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x00158120:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x001563c0;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                  fVar1 = 0.0;
                }
                else {
                  fVar1 = (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
                }
                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar1 >> 8);
                bVar21 = (byte)((uint)fVar1 >> 0x18);
                bVar19 = (byte)((uint)fVar1 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar1,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar1,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) ||
                   (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
                   dVar3 <= 0.0)) {
                  uStack_64._0_1_ = 0;
                  bVar25 = 0;
                  bVar19 = 0;
                  bVar21 = 0;
                }
                else {
                  dVar3 = dVar3 * (double)DAT_002a7fec;
                  if (dVar5 <= dVar3) {
                    uStack_64._0_1_ = 0xff;
                    bVar25 = 0xff;
                    bVar19 = 0xff;
                    bVar21 = 0xff;
                  }
                  else {
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x00158120;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) == 0) {
                dVar6 = 0.0;
              }
              else {
                dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8);
              }
              dVar6 = dVar6 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar6 >> 8);
              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_104._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar6,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_f4;
                param_5[3] = (byte)local_fc;
                param_5[6] = (byte)local_104;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar6,0);
                param_5[4] = (byte)local_fc;
                param_5[1] = (byte)local_104;
                param_5[5] = (byte)uStack_f4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x001563c0:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        uStack_e4._0_4_ = 0;
        while( true ) {
          uStack_f4 = 0;
          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x28) != 0) &&
             (dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x2c) * 8),
             0.0 < dVar3)) {
            fVar1 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            uStack_f4 = -1;
            dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                uStack_f4 = (longlong)ROUND(dVar3);
              }
            }
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          uStack_e4._0_4_ = (uint)uStack_e4 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if ((uint)uStack_e4 == (uint)local_fc) break;
          uVar11 = *param_3;
        }
      }
      goto LAB_001548a8;
    case 6:
    case 0x1a:
code_r0x001560f3:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportBlueQuantum";
        uVar11 = 0x4e6;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportBlueQuantum";
        uVar11 = 0x4e7;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 +
                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x00157c43:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x00156153:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                param_3[0x14] = uVar17;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8)
                      * (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x00157c43;
        if (param_3[2] != 1) goto code_r0x00156153;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x20) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 9:
code_r0x00155641:
      if (param_6 == 0) {
        pcVar31 = "ExportCbYCrYQuantum";
        uVar11 = 0x559;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportCbYCrYQuantum";
        uVar11 = 0x55a;
        goto code_r0x00159135;
      }
      uVar11 = *param_3;
      if (uVar11 == 10) {
        if ((param_3[0xb] == 0) && (0 < (int)(uint)local_fc)) {
          iVar13 = 0;
          do {
            iVar27 = 0;
            iVar18 = *(int *)(param_1 + 0x2a8);
            do {
              uVar11 = (uint)(iVar13 + iVar27) % 3;
              if (uVar11 == 1) {
                uStack_64 = (uint)(longlong)
                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x14) * 8));
              }
              else if (uVar11 == 2) {
                uStack_64 = (uint)(longlong)
                                  ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 0x20) * 8));
              }
              else {
                uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar18 + 8) * 8));
              }
              local_10c = (ulonglong)uStack_64;
              adStack_44[iVar27] = (double)local_10c;
              iVar27 = iVar27 + 1;
            } while (iVar27 != 4);
            iVar13 = iVar13 + 4;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[0]);
            uVar29 = uStack_64 << 0xc;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[2]);
            uVar11 = uStack_64 * 4;
            uStack_64 = (uint)(longlong)ROUND(adStack_44[1]);
            uVar26 = uStack_64 << 0x16 | uVar29 | uVar11;
            bVar19 = (byte)(uVar26 >> 0x10);
            bVar25 = (byte)uVar11;
            local_10c._0_1_ = (byte)(uVar26 >> 0x18);
            local_104._0_1_ = (byte)(uVar26 >> 8);
            if (param_3[0x10] == 1) {
              *param_5 = bVar25;
              param_5[2] = bVar19;
              param_5[1] = (byte)local_104;
              param_5[3] = (byte)local_10c;
            }
            else {
              param_5[1] = bVar19;
              *param_5 = (byte)local_10c;
              param_5[3] = bVar25;
              param_5[2] = (byte)local_104;
            }
            uVar29 = uVar29 | uVar11;
            iVar18 = *(int *)(param_1 + 0x298);
            uStack_64 = (uint)(longlong)ROUND(adStack_44[3]);
            uVar11 = uStack_64 << 0x16 | uVar29;
            bVar19 = (byte)(uVar11 >> 0x18);
            bVar21 = (byte)(uVar11 >> 0x10);
            local_10c._0_1_ = (byte)(uVar29 >> 8);
            if (param_3[0x10] == 1) {
              param_5[4] = bVar25;
              param_5[7] = bVar19;
              param_5[5] = (byte)local_10c;
              param_5[6] = bVar21;
            }
            else {
              param_5[4] = bVar19;
              param_5[5] = bVar21;
              param_5[7] = bVar25;
              param_5[6] = (byte)local_10c;
            }
            local_c4 = local_c4 + (*(int *)(param_1 + 0x298) + iVar18) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != ((uint)local_fc - 1 >> 1) * 4 + 4);
        }
      }
      else if (0 < (int)(uint)local_fc) {
        uVar29 = (uint)local_fc - 1;
        local_a8 = 0;
        do {
          iVar18 = 0;
          iVar13 = *(int *)(param_1 + 0x2a8);
          do {
            uVar26 = (uint)(local_a8 + iVar18) % 3;
            if (uVar26 == 1) {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x14) * 8))
              ;
            }
            else if (uVar26 == 2) {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 0x20) * 8))
              ;
            }
            else {
              uStack_64 = (uint)(longlong)ROUND(*(double *)(local_c4 + *(int *)(iVar13 + 8) * 8));
            }
            local_104 = (ulonglong)uStack_64;
            adStack_44[iVar18] = (double)local_104;
            iVar18 = iVar18 + 1;
          } while (iVar18 != 4);
          local_a8 = local_a8 + 4;
          local_bc = 0;
          iStack_b8 = 0;
          if (uVar11 != 0) {
            uVar26 = 0;
            if (uVar11 < 0x41) {
              uVar26 = uVar11;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            local_bc = uVar16 - 1;
            iStack_b8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          local_b4 = 0;
          if (0.0 < adStack_44[1]) {
            fVar1 = (float)CONCAT44(iStack_b8,local_bc);
            if (iStack_b8 < 0) {
              fVar1 = fVar1 + DAT_0029f714;
            }
            local_b4 = -1;
            dVar3 = ((double)fVar1 * adStack_44[1]) / (double)DAT_0029f710;
            if (dVar3 < (double)DAT_0029f714) {
              dVar3 = dVar3 + (double)DAT_0029f124;
              if ((double)DAT_0029f134 <= dVar3) {
                lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
              }
              else {
                local_b4 = (longlong)ROUND(dVar3);
              }
            }
          }
          uVar26 = param_3[0x14];
          if (uVar26 == 0) {
            param_3[0x14] = 8;
            uVar26 = 8;
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[0])) goto code_r0x00155924;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x0015590b;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x0015590b:
            uVar11 = *param_3;
            if (NAN(adStack_44[0])) {
              local_b4 = 0;
            }
            else {
code_r0x00155924:
              local_b4 = 0;
              if (0.0 < adStack_44[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[2])) goto code_r0x00155aac;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155a93;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155a93:
            uVar11 = *param_3;
            if (NAN(adStack_44[2])) {
              local_b4 = 0;
            }
            else {
code_r0x00155aac:
              local_b4 = 0;
              if (0.0 < adStack_44[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            local_74 = *(int *)(param_1 + 0x298);
            if (!NAN(adStack_44[3])) goto code_r0x00155c3d;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155c13;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155c13:
            local_74 = *(int *)(param_1 + 0x298);
            uVar11 = *param_3;
            if (NAN(adStack_44[3])) {
              local_b4 = 0;
            }
            else {
code_r0x00155c3d:
              local_b4 = 0;
              if (0.0 < adStack_44[3]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[3]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[0])) goto code_r0x00155dc3;
            local_b4 = 0;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                param_3[0x14] = uVar26;
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155db1;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155db1:
            uVar11 = *param_3;
            if (NAN(adStack_44[0])) {
              local_b4 = 0;
            }
            else {
code_r0x00155dc3:
              local_b4 = 0;
              if (0.0 < adStack_44[0]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_b4 = -1;
                dVar3 = ((double)fVar1 * adStack_44[0]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_b4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_b4 = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            if (uVar26 == 0) {
              param_3[0x14] = 8;
              uVar26 = 8;
            }
          }
          if ((int)uVar11 < 1) {
            if (!NAN(adStack_44[2])) goto code_r0x00155f45;
            local_fc = 0;
            uVar17 = uVar11;
          }
          else {
            do {
              while( true ) {
                uVar17 = uVar26;
                if (uVar11 <= uVar26) {
                  uVar17 = uVar11;
                }
                uVar16 = uVar11 - uVar17;
                uVar11 = 0;
                if (-1 < (int)uVar16) {
                  uVar11 = uVar16;
                }
                if (uVar26 == 8) {
                  *param_5 = 0;
                }
                uVar26 = uVar26 - uVar17;
                param_3[0x14] = uVar26;
                bVar25 = (byte)uVar11 & 0x1f;
                uVar15 = (uint)local_b4 >> bVar25 | local_b4._4_4_ << 0x20 - bVar25;
                if ((uVar11 & 0x20) != 0) {
                  uVar15 = local_b4._4_4_ >> ((byte)uVar11 & 0x1f);
                }
                bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
                if ((uVar26 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar26 != 0) break;
                param_5 = param_5 + 1;
                param_3[0x14] = 8;
                uVar26 = 8;
                if ((int)uVar16 < 1) goto code_r0x00155f33;
              }
              uVar26 = param_3[0x14];
            } while (0 < (int)uVar16);
code_r0x00155f33:
            uVar11 = *param_3;
            if (NAN(adStack_44[2])) {
              local_fc = 0;
            }
            else {
code_r0x00155f45:
              local_fc = 0;
              if (0.0 < adStack_44[2]) {
                fVar1 = (float)CONCAT44(iStack_b8,local_bc);
                if (iStack_b8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                local_fc = -1;
                dVar3 = ((double)fVar1 * adStack_44[2]) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    local_fc = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    local_fc = (longlong)ROUND(dVar3);
                  }
                }
              }
            }
            uVar17 = uVar11;
            if (uVar26 == 0) {
              param_3[0x14] = 8;
            }
          }
          while (0 < (int)uVar17) {
            uVar26 = param_3[0x14];
            uVar16 = uVar26;
            if (uVar11 <= uVar26) {
              uVar16 = uVar11;
            }
            uVar17 = uVar11 - uVar16;
            uVar11 = 0;
            if (-1 < (int)uVar17) {
              uVar11 = uVar17;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar16;
            param_3[0x14] = uVar26;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar15 = (uint)local_fc >> bVar25 | local_fc._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar15 = local_fc._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          local_c4 = local_c4 + (local_74 + *(int *)(param_1 + 0x298)) * 8;
          param_5 = param_5 + param_3[9];
          if (local_a8 == (uVar29 >> 1) * 4 + 4) break;
          uVar11 = *param_3;
        } while( true );
      }
      goto LAB_001548a8;
    case 10:
code_r0x00155615:
      FUN_00139c20(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xb:
code_r0x001555e9:
      FUN_0013bd70(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xc:
code_r0x001555bd:
      FUN_00136f80(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xd:
    case 0x15:
code_r0x0015533d:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportRedQuantum";
        uVar11 = 0xbaa;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportRedQuantum";
        uVar11 = 0xbab;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8)
                                           ));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x0015742f:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x0015539d:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                param_3[0x14] = uVar17;
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) *
                      (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x0015742f;
        if (param_3[2] != 1) goto code_r0x0015539d;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 8) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 0xe:
code_r0x00155311:
      FUN_00152ff0(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0xf:
code_r0x001552e5:
      FUN_0013def0(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x10:
    case 0x13:
code_r0x00155065:
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportGreenQuantum";
        uVar11 = 0x96d;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportGreenQuantum";
        uVar11 = 0x96e;
        goto code_r0x00159135;
      }
      uVar29 = *param_3;
      if (uVar29 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              uVar10 = FUN_00136290((float)((longdouble)dVar3 *
                                           (longdouble)
                                           *(double *)
                                            (local_c4 +
                                            *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)));
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (dVar3 <= 0.0) {
                iVar18 = 0;
                bVar25 = 0;
              }
              else if ((double)DAT_0029f710 <= dVar3) {
                iVar18 = -1;
                bVar25 = 0xff;
              }
              else {
                iVar18 = (int)ROUND(dVar3 + (double)DAT_0029f124);
                bVar25 = (byte)((uint)iVar18 >> 8);
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else if (uVar29 < 0x11) {
        if (uVar29 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              bVar25 = 0;
              if (0.0 < dVar3) {
                dVar3 = dVar3 / (double)DAT_002a7ff0;
                bVar25 = 0xff;
                if (dVar3 < (double)DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(dVar3 + (double)DAT_0029f124);
                }
              }
              iVar13 = iVar13 + 1;
              *param_5 = bVar25;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
code_r0x0015755d:
          iStack_cc = 0;
          iStack_c8 = 0;
          if (uVar29 != 0) {
code_r0x001550c5:
            uVar26 = 0;
            if (uVar29 < 0x41) {
              uVar26 = uVar29;
            }
            bVar19 = (byte)(uVar26 - 1);
            bVar25 = bVar19 & 0x1f;
            uVar15 = 2 << (bVar19 & 0x1f);
            uVar16 = uVar15;
            uVar17 = 0 << bVar25 | 2U >> 0x20 - bVar25;
            if ((uVar26 - 1 & 0x20) != 0) {
              uVar16 = 0;
              uVar17 = uVar15;
            }
            iStack_cc = uVar16 - 1;
            iStack_c8 = (uVar17 - 1) + (uint)(uVar16 != 0);
          }
          if (0 < (int)(uint)local_fc) {
            iStack_d4 = 0;
            while( true ) {
              uStack_e4 = 0;
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (0.0 < dVar3) {
                fVar1 = (float)CONCAT44(iStack_c8,iStack_cc);
                if (iStack_c8 < 0) {
                  fVar1 = fVar1 + DAT_0029f714;
                }
                uStack_e4 = -1;
                dVar3 = ((double)fVar1 * dVar3) / (double)DAT_0029f710;
                if (dVar3 < (double)DAT_0029f714) {
                  dVar3 = dVar3 + (double)DAT_0029f124;
                  if ((double)DAT_0029f134 <= dVar3) {
                    lVar4 = (longlong)ROUND(dVar3 - (double)DAT_0029f134);
                    iStack_60 = (int)((ulonglong)lVar4 >> 0x20);
                    uStack_e4 = CONCAT44(iStack_60 + -0x80000000,(int)lVar4);
                  }
                  else {
                    uStack_e4 = (longlong)ROUND(dVar3);
                  }
                }
              }
              uVar26 = uVar29;
              if (param_3[0x14] == 0) {
                param_3[0x14] = 8;
              }
              while (0 < (int)uVar26) {
                uVar17 = param_3[0x14];
                uVar16 = uVar17;
                if (uVar29 <= uVar17) {
                  uVar16 = uVar29;
                }
                uVar26 = uVar29 - uVar16;
                uVar29 = 0;
                if (-1 < (int)uVar26) {
                  uVar29 = uVar26;
                }
                if (uVar17 == 8) {
                  *param_5 = 0;
                }
                uVar17 = uVar17 - uVar16;
                bVar25 = (byte)uVar29 & 0x1f;
                uVar15 = (uint)uStack_e4 >> bVar25 | uStack_e4._4_4_ << 0x20 - bVar25;
                if ((uVar29 & 0x20) != 0) {
                  uVar15 = uStack_e4._4_4_ >> ((byte)uVar29 & 0x1f);
                }
                param_3[0x14] = uVar17;
                bVar25 = (byte)((~(-1 << ((byte)uVar16 & 0x1f)) & uVar15) << ((byte)uVar17 & 0x1f));
                if ((uVar17 & 0x20) != 0) {
                  bVar25 = 0;
                }
                *param_5 = *param_5 | bVar25;
                if (uVar17 == 0) {
                  param_5 = param_5 + 1;
                  param_3[0x14] = 8;
                }
              }
              iStack_d4 = iStack_d4 + 1;
              param_5 = param_5 + param_3[9];
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              if (iStack_d4 == (uint)local_fc) break;
              uVar29 = *param_3;
            }
          }
        }
      }
      else if (uVar29 == 0x20) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            dVar3 = *(double *)(param_3 + 0x11);
            dVar5 = *(double *)(param_3 + 3);
            uVar29 = param_3[0x10];
            do {
              fVar1 = (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8)
                      * (float)dVar3 + (float)dVar5;
              bVar25 = (byte)((uint)fVar1 >> 8);
              bVar21 = (byte)((uint)fVar1 >> 0x18);
              bVar19 = (byte)((uint)fVar1 >> 0x10);
              if (uVar29 == 1) {
                *param_5 = SUB41(fVar1,0);
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = SUB41(fVar1,0);
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              dVar3 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8);
              if (dVar3 <= 0.0) {
                uStack_64._0_1_ = 0;
                bVar25 = 0;
                bVar19 = 0;
                bVar21 = 0;
              }
              else {
                dVar3 = dVar3 * (double)DAT_002a7fec;
                if (dVar5 <= dVar3) {
                  uStack_64._0_1_ = 0xff;
                  bVar25 = 0xff;
                  bVar19 = 0xff;
                  bVar21 = 0xff;
                }
                else {
                  lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                  uStack_64._0_1_ = (byte)lVar4;
                  bVar25 = (byte)((ulonglong)lVar4 >> 8);
                  bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                  bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uStack_64;
                param_5[1] = bVar25;
                param_5[2] = bVar19;
                param_5[3] = bVar21;
              }
              else {
                *param_5 = bVar21;
                param_5[1] = bVar19;
                param_5[2] = bVar25;
                param_5[3] = (byte)uStack_64;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 4;
            } while (iVar13 != (uint)local_fc);
          }
        }
      }
      else {
        if (uVar29 != 0x40) goto code_r0x0015755d;
        if (param_3[2] != 1) goto code_r0x001550c5;
        if (0 < (int)(uint)local_fc) {
          dVar3 = *(double *)(param_3 + 0x11);
          iVar13 = 0;
          dVar5 = *(double *)(param_3 + 3);
          uVar29 = param_3[0x10];
          do {
            dVar6 = *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x14) * 8) * dVar3 +
                    dVar5;
            bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
            bVar19 = (byte)((ulonglong)dVar6 >> 8);
            bVar21 = (byte)((ulonglong)dVar6 >> 0x20);
            iStack_d4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
            bStack_ec = (byte)((ulonglong)dVar6 >> 0x38);
            iStack_cc._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
            uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
            if (uVar29 == 1) {
              *param_5 = SUB81(dVar6,0);
              param_5[4] = bVar21;
              param_5[5] = bVar25;
              param_5[1] = bVar19;
              param_5[2] = (byte)iStack_cc;
              param_5[3] = (byte)iStack_d4;
              param_5[6] = (byte)uStack_e4;
              param_5[7] = bStack_ec;
            }
            else {
              param_5[2] = bVar25;
              param_5[3] = bVar21;
              param_5[7] = SUB81(dVar6,0);
              param_5[4] = (byte)iStack_d4;
              *param_5 = bStack_ec;
              param_5[5] = (byte)iStack_cc;
              param_5[1] = (byte)uStack_e4;
              param_5[6] = bVar19;
            }
            iVar13 = iVar13 + 1;
            local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
            param_5 = param_5 + param_3[9] + 8;
          } while (iVar13 != (uint)local_fc);
        }
      }
      break;
    case 0x11:
code_r0x00155039:
      FUN_00138a40(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x12:
code_r0x0015500d:
      FUN_00136440(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x14:
code_r0x00154e20:
      iVar13 = (uint)local_fc;
      dVar5 = DAT_002a8000;
      dVar3 = _DAT_0029f148;
      if (param_6 == 0) {
        pcVar31 = "ExportOpacityQuantum";
        uVar11 = 0xb41;
        goto code_r0x00159158;
      }
      if (*(int *)(param_6 + 0x1c) != -0x54535255) {
        pcVar31 = "ExportOpacityQuantum";
        uVar11 = 0xb42;
        goto code_r0x00159135;
      }
      uVar11 = *param_3;
      if (uVar11 == 0x10) {
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              fVar1 = 0.0;
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                fVar1 = (DAT_0029f710 -
                        (float)*(double *)
                                (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8)) *
                        (float)dVar3;
              }
              uVar10 = FUN_00136290(fVar1);
              bVar25 = (byte)((ushort)uVar10 >> 8);
              if (param_3[0x10] == 1) {
                *param_5 = (byte)uVar10;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)uVar10;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        else {
          iVar13 = 0;
          if (0 < (int)(uint)local_fc) {
            do {
              iVar18 = 0;
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
                 (fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                 0.0 < fVar1)) {
                if (DAT_0029f710 <= fVar1) {
                  iVar18 = -1;
                  bVar25 = 0xff;
                }
                else {
                  iVar18 = (int)ROUND(fVar1 + DAT_0029f124);
                  bVar25 = (byte)((uint)iVar18 >> 8);
                }
              }
              if (param_3[0x10] == 1) {
                *param_5 = (byte)iVar18;
                param_5[1] = bVar25;
              }
              else {
                *param_5 = bVar25;
                param_5[1] = (byte)iVar18;
              }
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 2;
            } while (iVar13 != (uint)local_fc);
          }
        }
        goto LAB_001548a8;
      }
      if (uVar11 < 0x11) {
        if (uVar11 == 8) {
          if (0 < (int)(uint)local_fc) {
            iVar13 = 0;
            do {
              bVar25 = 0;
              if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
                 (fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                 0.0 < fVar1)) {
                fVar1 = fVar1 / DAT_002a7ff0;
                bVar25 = 0xff;
                if (fVar1 < DAT_002a7ff4) {
                  bVar25 = (byte)(short)ROUND(fVar1 + DAT_0029f124);
                }
              }
              *param_5 = bVar25;
              iVar13 = iVar13 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 1;
            } while (iVar13 != (uint)local_fc);
          }
          goto LAB_001548a8;
        }
code_r0x0015768b:
        iStack_dc = 0;
        iStack_d8 = 0;
        if (uVar11 != 0) goto code_r0x00154e80;
      }
      else {
        if (uVar11 == 0x20) {
          if (param_3[2] == 1) {
            if (0 < (int)(uint)local_fc) {
              iVar13 = 0;
              dVar3 = *(double *)(param_3 + 0x11);
              dVar5 = *(double *)(param_3 + 3);
              uVar11 = param_3[0x10];
              do {
                if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                  fVar1 = DAT_0029f710 -
                          (float)*(double *)
                                  (local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
                }
                else {
                  fVar1 = 0.0;
                }
                fVar1 = fVar1 * (float)dVar3 + (float)dVar5;
                bVar25 = (byte)((uint)fVar1 >> 8);
                bVar21 = (byte)((uint)fVar1 >> 0x18);
                bVar19 = (byte)((uint)fVar1 >> 0x10);
                if (uVar11 == 1) {
                  *param_5 = SUB41(fVar1,0);
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = SUB41(fVar1,0);
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          else {
            iVar13 = 0;
            if (0 < (int)(uint)local_fc) {
              do {
                if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) != 4) ||
                   (dVar3 = (double)DAT_0029f710 -
                            *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
                   dVar3 <= 0.0)) {
                  uStack_64._0_1_ = 0;
                  bVar25 = 0;
                  bVar19 = 0;
                  bVar21 = 0;
                }
                else {
                  dVar3 = dVar3 * (double)DAT_002a7fec;
                  if (dVar5 <= dVar3) {
                    uStack_64._0_1_ = 0xff;
                    bVar25 = 0xff;
                    bVar19 = 0xff;
                    bVar21 = 0xff;
                  }
                  else {
                    lVar4 = (longlong)ROUND(dVar3 + (double)DAT_0029f124);
                    uStack_64._0_1_ = (byte)lVar4;
                    bVar25 = (byte)((ulonglong)lVar4 >> 8);
                    bVar21 = (byte)((ulonglong)lVar4 >> 0x18);
                    bVar19 = (byte)((ulonglong)lVar4 >> 0x10);
                  }
                }
                if (param_3[0x10] == 1) {
                  *param_5 = (byte)uStack_64;
                  param_5[1] = bVar25;
                  param_5[2] = bVar19;
                  param_5[3] = bVar21;
                }
                else {
                  *param_5 = bVar21;
                  param_5[1] = bVar19;
                  param_5[2] = bVar25;
                  param_5[3] = (byte)uStack_64;
                }
                iVar13 = iVar13 + 1;
                local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
                param_5 = param_5 + param_3[9] + 4;
              } while (iVar13 != (uint)local_fc);
            }
          }
          goto LAB_001548a8;
        }
        if (uVar11 != 0x40) goto code_r0x0015768b;
        if (param_3[2] == 1) {
          if (0 < (int)(uint)local_fc) {
            dVar3 = *(double *)(param_3 + 0x11);
            iVar18 = 0;
            dVar5 = *(double *)(param_3 + 3);
            uVar11 = param_3[0x10];
            do {
              if (*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) {
                dVar6 = (double)DAT_0029f710 -
                        *(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8);
              }
              else {
                dVar6 = 0.0;
              }
              dVar6 = dVar6 * dVar3 + dVar5;
              bVar25 = (byte)((ulonglong)dVar6 >> 0x28);
              bVar19 = (byte)((ulonglong)dVar6 >> 8);
              bVar21 = (byte)((ulonglong)dVar6 >> 0x38);
              bVar22 = (byte)((ulonglong)dVar6 >> 0x20);
              uStack_f4._0_1_ = (byte)((ulonglong)dVar6 >> 0x18);
              local_fc._0_1_ = (byte)((ulonglong)dVar6 >> 0x30);
              uStack_e4._0_1_ = (byte)((ulonglong)dVar6 >> 0x10);
              if (uVar11 == 1) {
                *param_5 = SUB81(dVar6,0);
                param_5[4] = bVar22;
                param_5[5] = bVar25;
                param_5[7] = bVar21;
                param_5[1] = bVar19;
                param_5[2] = (byte)uStack_e4;
                param_5[3] = (byte)uStack_f4;
                param_5[6] = (byte)local_fc;
              }
              else {
                param_5[2] = bVar25;
                *param_5 = bVar21;
                param_5[3] = bVar22;
                param_5[7] = SUB81(dVar6,0);
                param_5[4] = (byte)uStack_f4;
                param_5[1] = (byte)local_fc;
                param_5[5] = (byte)uStack_e4;
                param_5[6] = bVar19;
              }
              iVar18 = iVar18 + 1;
              local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
              param_5 = param_5 + param_3[9] + 8;
            } while (iVar18 != iVar13);
          }
          goto LAB_001548a8;
        }
code_r0x00154e80:
        uVar29 = 0;
        if (uVar11 < 0x41) {
          uVar29 = uVar11;
        }
        bVar19 = (byte)(uVar29 - 1);
        bVar25 = bVar19 & 0x1f;
        uVar16 = 2 << (bVar19 & 0x1f);
        uVar17 = uVar16;
        uVar26 = 0 << bVar25 | 2U >> 0x20 - bVar25;
        if ((uVar29 - 1 & 0x20) != 0) {
          uVar17 = 0;
          uVar26 = uVar16;
        }
        iStack_dc = uVar17 - 1;
        iStack_d8 = (uVar26 - 1) + (uint)(uVar17 != 0);
      }
      if (0 < (int)(uint)local_fc) {
        iVar13 = 0;
        while( true ) {
          uStack_f4 = 0;
          if ((*(int *)(*(int *)(param_1 + 0x2a8) + 0x34) == 4) &&
             (fVar1 = DAT_0029f710 -
                      (float)*(double *)(local_c4 + *(int *)(*(int *)(param_1 + 0x2a8) + 0x38) * 8),
             0.0 < fVar1)) {
            fVar8 = (float)CONCAT44(iStack_d8,iStack_dc);
            if (iStack_d8 < 0) {
              fVar8 = fVar8 + DAT_0029f714;
            }
            uStack_f4 = -1;
            fVar1 = (fVar8 * fVar1) / DAT_0029f710;
            if (fVar1 < DAT_0029f714) {
              fVar1 = fVar1 + DAT_0029f124;
              if (DAT_0029f134 <= fVar1) {
                iStack_60 = (int)((ulonglong)(longlong)ROUND(fVar1 - DAT_0029f134) >> 0x20);
                uStack_f4 = CONCAT44(iStack_60 + -0x80000000,
                                     (int)(longlong)ROUND(fVar1 - DAT_0029f134));
              }
              else {
                uStack_f4 = (longlong)ROUND(fVar1);
              }
            }
          }
          uVar29 = uVar11;
          if (param_3[0x14] == 0) {
            param_3[0x14] = 8;
          }
          while (0 < (int)uVar29) {
            uVar26 = param_3[0x14];
            uVar17 = uVar26;
            if (uVar11 <= uVar26) {
              uVar17 = uVar11;
            }
            uVar29 = uVar11 - uVar17;
            uVar11 = 0;
            if (-1 < (int)uVar29) {
              uVar11 = uVar29;
            }
            if (uVar26 == 8) {
              *param_5 = 0;
            }
            uVar26 = uVar26 - uVar17;
            bVar25 = (byte)uVar11 & 0x1f;
            uVar16 = (uint)uStack_f4 >> bVar25 | uStack_f4._4_4_ << 0x20 - bVar25;
            if ((uVar11 & 0x20) != 0) {
              uVar16 = uStack_f4._4_4_ >> ((byte)uVar11 & 0x1f);
            }
            param_3[0x14] = uVar26;
            bVar25 = (byte)((~(-1 << ((byte)uVar17 & 0x1f)) & uVar16) << ((byte)uVar26 & 0x1f));
            if ((uVar26 & 0x20) != 0) {
              bVar25 = 0;
            }
            *param_5 = *param_5 | bVar25;
            if (uVar26 == 0) {
              param_5 = param_5 + 1;
              param_3[0x14] = 8;
            }
          }
          iVar13 = iVar13 + 1;
          param_5 = param_5 + param_3[9];
          local_c4 = local_c4 + *(int *)(param_1 + 0x298) * 8;
          if (iVar13 == (uint)local_fc) break;
          uVar11 = *param_3;
        }
      }
      goto LAB_001548a8;
    case 0x16:
code_r0x001560c7:
      local_fc._0_4_ = (uint)uVar30;
      FUN_00149950(uVar30,local_c4,param_5,param_6);
      break;
    case 0x17:
code_r0x00154df4:
      FUN_0014cb30(uVar30,local_c4,param_5,param_6);
      goto LAB_001548a8;
    case 0x19:
code_r0x00154a5f:
      local_fc._0_4_ = (uint)uVar30;
      FUN_001430e0(uVar30,local_c4,param_5,param_6);
    }
    if (1 < uVar11) goto LAB_001548a8;
  }
  if (param_2 == 0) {
    iVar13 = GetAuthenticPixelQueue(param_1);
  }
  else {
    iVar13 = GetCacheViewAuthenticPixelQueue(param_2);
  }
  if (0 < (int)(uint)local_fc) {
    iVar18 = *(int *)(param_1 + 0x298);
    iVar27 = *(int *)(*(int *)(param_1 + 0x2a8) + 8);
    iVar28 = *(int *)(*(int *)(param_1 + 0x2a8) + 0x14);
    iVar24 = 0;
    puVar14 = (undefined8 *)(iVar13 + iVar27 * 8);
    do {
      uVar30 = *puVar14;
      iVar24 = iVar24 + 1;
      *puVar14 = puVar14[iVar28 - iVar27];
      puVar14[iVar28 - iVar27] = uVar30;
      puVar14 = puVar14 + iVar18;
    } while (iVar24 != (uint)local_fc);
  }
LAB_001548a8:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return local_c0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}

